• 検索結果がありません。

データベースの作成時には、デフォルトでは、以下のデータベース ユーザーが自動的に登録され ています。

dbo

dbo は、database owner の略で、データベースに対するすべての権限を与えられた特殊なデー タベース ユーザーです。データベースを作成したログ゗ン ゕカウントへ自動的にマッピング(対 応)され、このユーザーを削除することはできません。

なお、sa ゕカウントなどの「sysadmin」固定サーバー ロールのメンバーは、SQL Server に対 するあらゆる操作が可能な管理者ゕカウントなので、データベースに対しては、dbo としてデー タベースを操作することができます。dbo であれば、たとえオブジェクトに対する操作権限が与 えられていない場合でも、自由にテーブルを操作することができます。

guest

guest は、ログ゗ン ゕカウントとの対応を持たない特殊なデータベース ユーザーで、デフォルト では無効に設定されています。このユーザーも削除することはできません。

guest ユーザーを有効にすると、データベース ユーザーとして登録されていないログ゗ン ゕカウ ントでも、guest(匿名ユーザー)としてデータベースへゕクセスできるようになります。したが って、セキュリテゖ強化を考えると、[無効]のままにしておくことをお勧めします。

Let's Try

それでは、guest ユーザーを試してみましょう。

1. まずは、新しくログ゗ン ゕカウントを作成します。次のようにオブジェクト エクスプローラ の[ログイン]フォルダを右クリックして、[新しいログイン]をクリックします。

dboはデータベースに対して すべての権限を付与されている

guestはデフォルトは無効。

データベース ユーザーが作成されていない ログ゗ン ゕカウントが利用できる

SQL Server のシステム オブジェク トの所有者として内部利用される

[ログ゗ン - 新規作成]ダ゗ゕログでは、[SQL Server 認証]をチェックして、[ログイン 名]へ「sqlUser03」など任意の名前を入力します。[パスワード]と[パスワードの確認入 力]へは、「P@ssword」など任意のパスワードをして、[ユーザーは次回ログ゗ン時にパス ワードを変更する]のチェックを外して、[OK]ボタンをクリックします。

2. 次に、作成した「sqlUser03」ログ゗ン ゕカウントで SQL Server へログ゗ンします。次 のように、ツールバーの[データベース エンジン クエリ]ボタンをクリックします。

[データベース エンジンへの接続]ダ゗ゕログでは、[認証]で「SQL Server 認証」を選 択し、[ログイン]へ「sqlUser03」、[パスワード]へ「P@ssword」と入力して、[接続]

1

2

3

5

6 4

2

3 1

結果は、エラーとなり、データベースへの接続が失敗したことを確認できます。

4. 次に、guest ユーザーを有効化して、「sqlUser03」ログ゗ン ゕカウントが guest として接 続できるようにしてみましょう。guest ユーザーを有効化するには、次のようにクエリ エデ ゖタから GRANT ステートメントを実行して、「CONNECT」(接続)権限を付与します(こ のステートメントは管理者ゕカウントで接続したクエリ エデゖタから実行する必要がありま す)。

GRANT CONNECT TO GUEST

「コマンドが正常に完了しました」と表示されれば、guest ユーザーの有効化が成功してい ます。これにより、guest ユーザーのゕ゗コンが次のように変わります。

5. 次に、もう一度、「sqlUser03」ログ゗ン ゕカウントで sampleDB データベースへの接続 を試してみます。次のように、ツールバーの[データベース エンジン クエリ]ボタンをクリ ックします。

2 3

「sqlUser03」ログ゗ン ゕ カウントで接続したクエリ エデゖタであることを確認 1

4 接続失敗

2

1

guest ユーザーが無効な場合(デフォルト) guest ユーザーが有効な場合

[認証]で「SQL Server 認証」を選択し、[ログイン]へ「sqlUser03」、[パスワード]

へ「P@ssword」と入力して、[接続]ボタンをクリックします。

6. 接続後、クエリ エデゖタで、「sampleDB」データベースへ接続します。

USE sampleDB

今後は、接続が成功したことを確認できます(guest ユーザーとして接続しています)。この あと、「社員」テーブルを参照するには、「社員」テーブルのオブジェクト権限が guest ユー ザーに対して設定されている必要があります。

このように guest ユーザーを有効化すると、データベース ユーザーとして登録されていな いユーザーでも、データベースへ接続できるようになります。セキュリテゖ面では、ゆるくな ってしまいますので、guest ユーザーは無効のまま利用することをお勧めします。有効化し た guest ユーザーを無効化する場合は、次のように REVOKE ステートメントを実行します。

2

3 1

1 2

3 接続成功

4.3 SQL ステートメントでデータベース ユーザーの作成