SQL Server認証
SQL Serverではセキュリティの観点からデータベースの利用権限をユーザーごとに設定するようになっています。本記事ではSQL Serverの認証について初心者でも分かりやすく説明いたします。
■SQL Server認証とWindows認証
SQL Serverではデータベースを利用するために、権限を持つユーザーとしてログイン時に認証を受ける必要があります。その認証方法として、SQL Server認証とWindows認証の2種類の認証を選べるようになっています。Windows認証はOS(Windows)にサインインしたユーザー情報を引き継ぎます。SQL Server認証ではWindowsにサインインするユーザーに関わりなくSQL Serverに接続するユーザーを管理する認証方法です。
■ユーザーの権限
SQL Serverではデータベースごとにデータベースユーザーを作成します。そのデータベースユーザーごとに権限を設定できるようになっています。データベース接続時に認証を受けるユーザー(ログイン)はデータベースユーザーと関連付ける(ユーザーマッピング)ことで実際のデータベースを操作することができます。
■データベースの作成
SQL Server Management System(SSMS)からデータベースを作成します。今回は説明用に「TestDB」データベースを作成しました。データベースをまだ作成したことが無ければ下記記事を参考にデータベースを作成しましょう。
■ログインとデータベースユーザーの作成
「TestDB」データベースで、SQL Server認証のu_testdbログインに対して利用権限を与えることにします。次の手順でu_testdbログインを作成し、「TestDB」データベースにユーザーを登録します。
(1)
SSMSのオブジェクトエクスプローラーの「セキュリティ」の左側の「+」をクリックします。
(2)
「ログイン」を右クリックしショートカットメニューの「新しいログイン」をクリックします。
(3)
「ログイン-新規作成」ダイアログボックスが表示されます。
(4)
「ログイン名」ボックスに「u_testdb」を入力し、SQL Server認証のラジオボタンにチェックを入れます。「パスワード」と「パスワードの確認入力」の両方のボックスに同じ「u_testdb_pw」を入力します。
(5)
「パスワードポリシーを適用する」チェックボックスを外します(オフ)。「パスワードの期限を適用する」チェックボックスと「次回ログイン時のパスワード変更を必須にする」チェックボックスが無効にります(オフ)。
(6)
「既定のデータベース」のプルダウンリストから「TestDB」を選択します。
ここで選択したデータベースがこのログインの既定のデータベースとなります。
(7)
SSMSの左側メニューのページ設定の中の「ユーザーマッピング」をクリックします。
(8)
「このログインにマップされたユーザー」のデータベース列の「TestDB」行の左側のマップ列にチェックを入れます。ユーザー列に作成中の「u_testdb」が表示されます。
(9)
「TestDBのデータベースロールのメンバーシップ」で「db_datareader」と「db_datawriter」のチェックボックスのチェックを入れます。「public」は常にチェックが入っています。
(10)
「ログイン-新規作成」ダイアログボックスの右下の「OK」ボタンをクリックします。
(11)
オブジェクトエクスプローラで「セキュリティ」の下層の「ログイン」の左側の「+」をクリックすると展開され
「u_testdb」ログインが作成されたことが確認できます。
(12)
オブジェクトエクスプローラで「データベース」→「TestDB」→「セキュリティ」→「ユーザー」の順に展開していくと作成されたユーザーが確認できます。
■SQL Server認証でログインしてみる
SSMSを再起動します。データベースの接続ダイアログが表示されますので、認証のプルダウンリストで「SQL Server認証」を選択し、ログインのボックスに先ほど作成した「u_testdb」を入力、パスワードのボックスに先ほど登録した「u_testdb_pw」を入力し「接続」ボタンをクリックします。
認証に成功すると、オブジェクトエクスプローラが表示されます。「データベース」→「TestDB」を展開すると、テーブルやビューなどが表示されるようになり、編集ができるようになります。(権限がないと表示されません)
■まとめ
以上で設定は完了です。このようにSQL Server認証を設定するとローカルネットワーク上の複数PCからデータベースに接続できるようになります。
コメント