データベース レベルのロールDatabase-Level Roles

SQL ServerSQL Server には、データベースでの権限を簡単に管理できるように、いくつかの ロール が用意されています。ロールは、セキュリティ プリンシパルとして他のプリンシパルをグループ化します。To easily manage the permissions in your databases, SQL ServerSQL Server provides several roles which are security principals that group other principals. ロールは、 Windows オペレーティング システムの グループ MicrosoftMicrosoft に似ています。They are like groups in the MicrosoftMicrosoft Windows operating system. データベース レベルのロールは、その権限のスコープがデータベース全体に及びます。Database-level roles are database-wide in their permissions scope.

SQL ServerSQL Serverには、データベース レベルのロールが 2 種類あります。1 つはデータベースに事前に定義されている 固定データベース ロール 、もう 1 つはユーザーが作成できる 可変データベース ロール です。There are two types of database-level roles in SQL ServerSQL Server: fixed database roles that are predefined in the database and flexible database roles that you can create.

固定データベース ロールはデータベース レベルで定義されており、各データベースに存在します。Fixed database roles are defined at the database level and exist in each database. db_owner データベース ロールのメンバーは、固定データベース ロールのメンバーシップを管理できます。Members of the db_owner database role can manage fixed database role membership. msdb データベースには、特別な用途の固定データベース ロールもいくつかあります。There are also some special-purpose fixed database roles in the msdb database.

データベース レベルのロールには、すべてのデータベース アカウントとその他の SQL ServerSQL Server ロールを追加できます。You can add any database account and other SQL ServerSQL Server roles into database-level roles. 固定データベース ロールの各メンバーは、そのロールに他のログインを追加できます。Each member of a fixed database role can add other logins to that same role.

重要

可変データベース ロールは、固定ロールのメンバーとして追加しないでください。Do not add flexible database roles as members of fixed roles. これを行うと、特権が意図せず昇格されることがあります。This could enable unintended privilege escalation.

次の表に、固定データベース レベルのロールとその機能を示します。The following table shows the fixed database-level roles and their capabilities. これらのロールは、すべてのデータベースに存在します。These roles exist in all databases.

データベース レベルのロール名Database-level role name 説明Description
db_ownerdb_owner db_owner 固定データベース ロールのメンバーは、データベースでのすべての構成作業とメンテナンス作業を実行でき、データベースを削除することもできます。Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database.
db_securityadmindb_securityadmin db_securityadmin 固定データベース ロールのメンバーは、ロールのメンバーシップを変更し、権限を管理できます。Members of the db_securityadmin fixed database role can modify role membership and manage permissions. このロールにプリンシパルを追加すると、特権が意図せず昇格されることがあります。Adding principals to this role could enable unintended privilege escalation.
db_accessadmindb_accessadmin db_accessadmin 固定データベース ロールのメンバーは、Windows ログイン、Windows グループ、および SQL ServerSQL Server ログインのデータベースに対するアクセスを追加または削除できます。Members of the db_accessadmin fixed database role can add or remove access to the database for Windows logins, Windows groups, and SQL ServerSQL Server logins.
db_backupoperatordb_backupoperator db_backupoperator 固定データベース ロールのメンバーは、データベースをバックアップできます。Members of the db_backupoperator fixed database role can back up the database.
db_ddladmindb_ddladmin db_ddladmin 固定データベース ロールのメンバーは、すべての DDL (データ定義言語) コマンドをデータベースで実行できます。Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.
db_datawriterdb_datawriter db_datawriter 固定データベース ロールのメンバーは、すべてのユーザー テーブルのデータを追加、削除、または変更できます。Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.
db_datareaderdb_datareader db_datareader 固定データベース ロールのメンバーは、すべてのユーザー テーブルからすべてのデータを読み取ることができます。Members of the db_datareader fixed database role can read all data from all user tables.
db_denydatawriterdb_denydatawriter db_denydatawriter 固定データベース ロールのメンバーは、データベース内のユーザー テーブルのデータを追加、変更、または削除することはできません。Members of the db_denydatawriter fixed database role cannot add, modify, or delete any data in the user tables within a database.
db_denydatareaderdb_denydatareader db_denydatareader 固定データベース ロールのメンバーは、データベース内のユーザー テーブルのデータを読み取ることはできません。Members of the db_denydatareader fixed database role cannot read any data in the user tables within a database.

msdb ロールmsdb Roles

msdb データベースには、次の表に示す特別な用途のロールが含まれています。The msdb database contains the special-purpose roles that are shown in the following table.

msdb ロール名msdb role name 説明Description
db_ssisadmin

db_ssisoperatordb_ssisoperator

db_ssisltduserdb_ssisltduser
これらのデータベース ロールのメンバーは、 SSISSSISを管理および使用できます。Members of these database roles can administer and use SSISSSIS. 以前のバージョンからアップグレードされた SQL ServerSQL Server のインスタンスには、SSISSSIS ではなくデータ変換サービス (DTS) を使用して名前が付けられた古いバージョンのロールが含まれている場合があります。Instances of SQL ServerSQL Server that are upgraded from an earlier version might contain an older version of the role that was named using Data Transformation Services (DTS) instead of SSISSSIS. 詳細については、「Integration Services のロール (SSIS サービス)」を参照してください。For more information, see Integration Services Roles (SSIS Service).
dc_admin

dc_operatordc_operator

dc_proxydc_proxy
これらのデータベース ロールのメンバーは、データ コレクターを管理および使用できます。Members of these database roles can administer and use the data collector. 詳細については、「 Data Collection」を参照してください。For more information, see Data Collection.
PolicyAdministratorRolePolicyAdministratorRole PolicyAdministratorRole データベース ロールのメンバーは、ポリシー ベースの管理のポリシーと条件で、すべての構成作業とメンテナンス作業を実行できます。Members of the db_ PolicyAdministratorRole database role can perform all configuration and maintenance activities on Policy-Based Management policies and conditions. 詳細については、「 ポリシー ベースの管理を使用したサーバーの管理」を参照してください。For more information, see Administer Servers by Using Policy-Based Management.
ServerGroupAdministratorRoleServerGroupAdministratorRole

ServerGroupReaderRoleServerGroupReaderRole
これらのデータベース ロールのメンバーは、登録済みサーバーのグループを管理および使用できます。Members of these database roles can administer and use registered server groups.
dbm_monitordbm_monitor 作成した、msdbデータベースのデータベース ミラーリング モニターに最初のデータベースが登録されるとします。Created in the msdb database when the first database is registered in Database Mirroring Monitor. dbm_monitor ロールには、メンバーは割り当てられていません。システム管理者がそのロールにユーザーを割り当てる必要があります。The dbm_monitor role has no members until a system administrator assigns users to the role.

重要

db_ssisadmin ロールおよび dc_admin ロールのメンバーは、特権を sysadmin に昇格できる可能性があります。Members of the db_ssisadmin role and the dc_admin role may be able to elevate their privileges to sysadmin. このような特権の昇格が発生するのは、それらのロールが Integration ServicesIntegration Services パッケージを変更でき、 Integration ServicesIntegration Services エージェントの sysadmin セキュリティ コンテキストを使用して SQL ServerSQL ServerSQL ServerSQL Server パッケージを実行できるためです。This elevation of privilege can occur because these roles can modify Integration ServicesIntegration Services packages and Integration ServicesIntegration Services packages can be executed by SQL ServerSQL Server using the sysadmin security context of SQL ServerSQL Server Agent. メンテナンス プラン、データ コレクション セット、およびその他の Integration ServicesIntegration Services パッケージの実行時にこの特権の昇格を防ぐには、特権が制限されたプロキシ アカウントを使用するようにパッケージを実行する SQL ServerSQL Server エージェント ジョブを構成するか、db_ssisadmin ロールおよび dc_admin ロールには sysadmin メンバーのみを追加するようにします。To guard against this elevation of privilege when running maintenance plans, data collection sets, and other Integration ServicesIntegration Services packages, configure SQL ServerSQL Server Agent jobs that run packages to use a proxy account with limited privileges or only add sysadmin members to the db_ssisadmin and dc_admin roles.

データベース レベルのロールの操作Working with Database-Level Roles

次の表では、データベース レベルのロールを操作するためのコマンド、ビュー、および関数について説明します。The following table explains the commands, views and functions for working with database-level roles.

機能Feature Type 説明Description
sp_helpdbfixedrole (Transact-SQL)sp_helpdbfixedrole (Transact-SQL) メタデータMetadata 固定データベース ロールの一覧を返します。Returns a list of the fixed database roles.
sp_dbfixedrolepermission (Transact-SQL)sp_dbfixedrolepermission (Transact-SQL) メタデータMetadata 固定データベース ロールの権限を表示します。Displays the permissions of a fixed database role.
sp_helprole (Transact-SQL)sp_helprole (Transact-SQL) メタデータMetadata 現在のデータベース内のロールに関する情報を返します。Returns information about the roles in the current database.
sp_helprolemember (Transact-SQL)sp_helprolemember (Transact-SQL) メタデータMetadata 現在のデータベースに含まれるロールのメンバーに関する情報を返します。Returns information about the members of a role in the current database.
sys.database_role_members (Transact-SQL)sys.database_role_members (Transact-SQL) メタデータMetadata データベース ロールのメンバーごとに 1 行のデータを返します。Returns one row for each member of each database role.
IS_MEMBER (Transact-SQL)IS_MEMBER (Transact-SQL) メタデータMetadata 現在のユーザーが、指定された Microsoft Windows グループまたは Microsoft SQL Server データベース ロールのメンバーであるかどうかを示します。Indicates whether the current user is a member of the specified Microsoft Windows group or Microsoft SQL Server database role.
CREATE ROLE (Transact-SQL)CREATE ROLE (Transact-SQL) コマンドCommand 現在のデータベースに新しいデータベース ロールを作成します。Creates a new database role in the current database.
ALTER ROLE (Transact-SQL)ALTER ROLE (Transact-SQL) コマンドCommand データベース ロールの名前を変更します。Changes the name of a database role.
DROP ROLE (Transact-SQL)DROP ROLE (Transact-SQL) コマンドCommand データベースからロールを削除します。Removes a role from the database.
sp_addrole (Transact-SQL)sp_addrole (Transact-SQL) コマンドCommand 現在のデータベースに新しいデータベース ロールを作成します。Creates a new database role in the current database.
sp_droprole (Transact-SQL)sp_droprole (Transact-SQL) コマンドCommand 現在のデータベースからデータベース ロールを削除します。Removes a database role from the current database.
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL) コマンドCommand データベース ユーザー、データベース ロール、Windows ログイン、または Windows グループを、現在のデータベースのデータベース ロールに追加します。Adds a database user, database role, Windows login, or Windows group to a database role in the current database.
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL) コマンドCommand 現在のデータベースの SQL Server ロールからセキュリティ アカウントを削除します。Removes a security account from a SQL Server role in the current database.

public データベース ロールpublic Database Role

データベース ユーザーはすべて、 public データベース ロールに属しています。Every database user belongs to the public database role. セキュリティ保護可能なオブジェクトに対する特定の権限が与えられていないか権限が拒否されているユーザーは、そのオブジェクトに対して public に付与されている権限を継承します。When a user has not been granted or denied specific permissions on a securable object, the user inherits the permissions granted to public on that object.

セキュリティ カタログ ビュー (Transact-SQL)Security Catalog Views (Transact-SQL)

セキュリティ ストアド プロシージャ (Transact-SQL)Security Stored Procedures (Transact-SQL)

セキュリティ関数 (Transact-SQL)Security Functions (Transact-SQL)

SQL Server の保護Securing SQL Server

sp_helprotect (Transact-SQL)sp_helprotect (Transact-SQL)