データベース レベルのロール
SQL Server には、データベースでの権限を簡単に管理できるように、いくつかのロールが用意されています。ロールは、セキュリティ プリンシパルとして他のプリンシパルをグループ化します。ロールは、Microsoft Windows オペレーティング システムのグループに似ています。データベース レベルのロールは、その権限のスコープがデータベース全体に及びます。
SQL Server には、データベース レベルのロールが 2 種類あります。1 つはデータベースに事前に定義されている固定データベース ロール、もう 1 つはユーザーが作成できる可変データベース ロールです。
固定データベース ロールはデータベース レベルで定義されており、各データベースに存在します。データベース ロール db_owner および db_securityadmin のメンバは、固定データベース ロールのメンバシップを管理できます。ただし、固定データベース ロール db_owner にメンバを追加できるのは db_owner データベース ロールのメンバだけです。msdb データベースには、特別な用途の固定データベース ロールもいくつかあります。
データベース レベルのロールには、すべてのデータベース アカウントとその他の SQL Server ロールを追加できます。固定データベース ロールの各メンバは、そのロールに他のログインを追加できます。
重要 |
---|
可変データベース ロールは、固定ロールのメンバとして追加しないでください。これを行うと、特権が意図せず昇格されることがあります。 |
次の表に、固定データベース レベルのロールとその機能を示します。これらのロールは、すべてのデータベースに存在します。
データベース レベルのロール名 |
説明 |
---|---|
db_owner |
db_owner 固定データベース ロールのメンバは、データベースでのすべての構成作業とメンテナンス作業を実行でき、データベースを削除することもできます。 |
db_securityadmin |
db_securityadmin 固定データベース ロールのメンバは、ロールのメンバシップを変更し、権限を管理できます。このロールにプリンシパルを追加すると、特権が意図せず昇格されることがあります。 |
db_accessadmin |
db_accessadmin 固定データベース ロールのメンバは、Windows ログイン、Windows グループ、および SQL Server ログインのデータベースに対するアクセスを追加または削除できます。 |
db_backupoperator |
db_backupoperator 固定データベース ロールのメンバは、データベースをバックアップできます。 |
db_ddladmin |
db_ddladmin 固定データベース ロールのメンバは、すべての DDL (データ定義言語) コマンドをデータベースで実行できます。 |
db_datawriter |
db_datawriter 固定データベース ロールのメンバは、すべてのユーザー テーブルのデータを追加、削除、または変更できます。 |
db_datareader |
db_datareader 固定データベース ロールのメンバは、すべてのユーザー テーブルからすべてのデータを読み取ることができます。 |
db_denydatawriter |
db_denydatawriter 固定データベース ロールのメンバは、データベース内のユーザー テーブルのデータを追加、変更、または削除することはできません。 |
db_denydatareader |
db_denydatareader 固定データベース ロールのメンバは、データベース内のユーザー テーブルのデータを読み取ることはできません。 |
データベース レベルの固定ロールの権限の詳細については、「固定データベース ロールの権限 (データベース エンジン)」を参照してください。
msdb ロール
msdb データベースには、次の表に示す特別な用途のロールが含まれています。
msdb ロール名 |
説明 |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
これらのデータベース ロールのメンバは、SSIS を管理および使用できます。以前のバージョンからアップグレードされた SQL Server のインスタンスには、SSIS ではなくデータ変換サービス (DTS) を使用して名前が付けられた古いバージョンのロールが含まれている場合があります。詳細については、「Integration Services のロールの使用」を参照してください。 |
dc_admin dc_operator dc_proxy |
これらのデータベース ロールのメンバは、データ コレクタを管理および使用できます。詳細については、「データ コレクタのセキュリティ」を参照してください。 |
PolicyAdministratorRole |
PolicyAdministratorRole データベース ロールのメンバは、ポリシー ベースの管理のポリシーと条件で、すべての構成作業とメンテナンス作業を実行できます。詳細については、「ポリシー ベースの管理を使用したサーバーの管理」を参照してください。 |
ServerGroupAdministratorRole ServerGroupReaderRole |
これらのデータベース ロールのメンバは、登録済みサーバーのグループを管理および使用できます。詳細については、「サーバー グループの作成」を参照してください。 |
重要 |
---|
db_ssisadmin ロールおよび dc_admin ロールのメンバは、特権を sysadmin に昇格できる可能性があります。このような特権の昇格が発生するのは、それらのロールが Integration Services パッケージを変更でき、SQL Server エージェントの sysadmin セキュリティ コンテキストを使用して SQL Server で Integration Services パッケージを実行できるためです。メンテナンス プラン、データ コレクション セット、およびその他の Integration Services パッケージの実行時にこの特権の昇格を防ぐには、特権が制限されたプロキシ アカウントを使用するようにパッケージを実行する SQL Server エージェント ジョブを構成するか、db_ssisadmin ロールおよび dc_admin ロールには sysadmin メンバのみを追加するようにします。 |
サーバー レベルのロールの操作
次の表では、サーバー レベルのロールを操作するためのコマンド、ビュー、および関数について説明します。
機能 |
種類 |
説明 |
---|---|---|
メタデータ |
固定データベース ロールの一覧を返します。 |
|
メタデータ |
固定データベース ロールの権限を表示します。 |
|
メタデータ |
現在のデータベース内のロールに関する情報を返します。 |
|
メタデータ |
現在のデータベースに含まれるロールのメンバに関する情報を返します。 |
|
メタデータ |
各データベース ロールのメンバごとに 1 行のデータを返します。 |
|
メタデータ |
現在のユーザーが、指定された Microsoft Windows グループまたは Microsoft SQL Server データベース ロールのメンバであるかどうかを示します。 |
|
コマンド |
現在のデータベースに新しいデータベース ロールを作成します。 |
|
コマンド |
データベース ロールの名前を変更します。 |
|
コマンド |
データベースからロールを削除します。 |
|
コマンド |
現在のデータベースに新しいデータベース ロールを作成します。 |
|
コマンド |
現在のデータベースからデータベース ロールを削除します。 |
|
コマンド |
データベース ユーザー、データベース ロール、Windows ログイン、または Windows グループを、現在のデータベースのデータベース ロールに追加します。 |
|
コマンド |
現在のデータベースの SQL Server ロールからセキュリティ アカウントを削除します。 |
public データベース ロール
データベース ユーザーはすべて、public データベース ロールに属しています。セキュリティ保護可能なオブジェクトに対する特定の権限が与えられていないか権限が拒否されているユーザーは、そのオブジェクトに対して public に付与されている権限を継承します。