Shintaro's Laboratory

SEの徒然日誌です。気ままに更新していきます。

SQLServerの基礎(ユーザーと認証)

今回はSQLServerの基礎であるユーザーと認証について整理する。

 

通常SQLServerと呼ばれるものは、OS上で動作するインスタンスのことを指す。

インスタンスは下記2つに大別できる。

規定のインスタンス・・・デフォルトのインスタンスMSSQLSERVERという名前となる。ログインする際にインスタンス名を省略できる。1つのインスタンスしか必要ない場合はこちらでよい。

名前付きインスタンス・・・1台のOSに複数面のSQLServerを構築したい場合等に利用する。

 

なお複数インスタンスを作成した場合は、ポート番号で接続を分けるという手法がよく使われる。ポート番号はSQLServerConfigurationManagerで確認可能となっている(規定のインスタンスのデフォルトポートは1433である)。

 

話を戻す。先ほどのインスタンスに対して、下記2つの認証方法を設定できる。

windows認証・・・OSの認証と同じ。

SQLServer認証・・・SQLServerに作成したログインユーザー(sa等)で認証する。

 

そしてインスタンスの中に複数のデータベース(テーブルの集合体)を構築できる。例えば従業員テーブル、役職テーブルをまとめて人事データベースとするように。

 

このデータベースには、データベースユーザーを作成できる。データベースユーザーは、配下のそれぞれのテーブルに対して、db_owner(最高権限)のような操作の権限(ロール)を付与することができる。ここで権限を設定したデータベースユーザーとログインユーザーをマッピングさせることで、特定のログインユーザーでログインした際に個々のテーブルに対して何ができるかというのを規定することができる。

 

例:test_loginというログインユーザーに対してtestデータベースのtestというデータベースユーザーができる操作をマッピングする。