SQLServerの基礎(ユーザーと認証)
今回はSQLServerの基礎であるユーザーと認証について整理する。
通常SQLServerと呼ばれるものは、OS上で動作するインスタンスのことを指す。
インスタンスは下記2つに大別できる。
・規定のインスタンス・・・デフォルトのインスタンス。MSSQLSERVERという名前となる。ログインする際にインスタンス名を省略できる。1つのインスタンスしか必要ない場合はこちらでよい。
・名前付きインスタンス・・・1台のOSに複数面のSQLServerを構築したい場合等に利用する。
なお複数インスタンスを作成した場合は、ポート番号で接続を分けるという手法がよく使われる。ポート番号はSQLServerConfigurationManagerで確認可能となっている(規定のインスタンスのデフォルトポートは1433である)。
話を戻す。先ほどのインスタンスに対して、下記2つの認証方法を設定できる。
・windows認証・・・OSの認証と同じ。
・SQLServer認証・・・SQLServerに作成したログインユーザー(sa等)で認証する。
そしてインスタンスの中に複数のデータベース(テーブルの集合体)を構築できる。例えば従業員テーブル、役職テーブルをまとめて人事データベースとするように。
このデータベースには、データベースユーザーを作成できる。データベースユーザーは、配下のそれぞれのテーブルに対して、db_owner(最高権限)のような操作の権限(ロール)を付与することができる。ここで権限を設定したデータベースユーザーとログインユーザーをマッピングさせることで、特定のログインユーザーでログインした際に個々のテーブルに対して何ができるかというのを規定することができる。
例:test_loginというログインユーザーに対してtestデータベースのtestというデータベースユーザーができる操作をマッピングする。