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

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

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.

データベース ロールに対するユーザーの追加および削除を行うには、 ADD MEMBER ALTER ROLE DROP MEMBER ステートメントの のオプションを使用します。To add and remove users to a database role, use the ADD MEMBER and DROP MEMBER options of the ALTER ROLE statement. Parallel Data WarehouseParallel Data Warehouse では、 ALTER ROLEのこのような使用はサポートされません。does not support this use of ALTER ROLE. 代わりに、以前の sp_addrolemembersp_droprolemember プロシージャを使用してください。Use the older sp_addrolemember and sp_droprolemember procedures instead.

データベース レベルのロールは 2 種類あります。1 つはデータベースに事前に定義されている 固定データベース ロール 、もう 1 つはユーザーが作成できる ユーザー定義データベース ロール です。There are two types of database-level roles: fixed-database roles that are predefined in the database and user-defined 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 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.

ヒント

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

ユーザー定義データベース ロールの権限は、GRANT、DENY、および REVOKE ステートメントを使用してカスタマイズできます。The permissions of user-defined database roles can be customized by using the GRANT, DENY, and REVOKE statements. 詳細については、「 権限 (データベース エンジン)」を参照してください。For more information, see Permissions (Database Engine).

すべての権限の一覧については、 データベース エンジンの権限 ポスターを参照してください。For a list of all the permissions, see the Database Engine Permissions poster. (サーバー レベルの権限をデータベース ロールに付与することはできません。(Server-level permissions cannot be granted to database roles. ログインおよびその他のサーバー レベル プリンシパル (サーバー ロールなど) は、データベース ロールに追加できません。Logins and other server-level principals (such as server roles) cannot be added to database roles. SQL ServerSQL Serverでのサーバー レベル セキュリティでは、代わりに サーバー ロール を使用します。For server-level security in SQL ServerSQL Server, use server roles instead. サーバー レベルの権限を SQL DatabaseSQL DatabaseSQL データ ウェアハウスSQL Data Warehouseのロールを介して付与することはできません。)Server-level permissions cannot be granted through roles in SQL DatabaseSQL Database and SQL データ ウェアハウスSQL Data Warehouse.)

固定データベース ロールFixed-Database Roles

次の表に、固定データベース ロールとその機能を示します。The following table shows the fixed-database roles and their capabilities. これらのロールは、すべてのデータベースに存在します。These roles exist in all databases. public データベース ロールを除き、固定データベース ロールに割り当てられている権限を変更することはできません。Except for the public database role, the permissions assigned to the fixed-database roles cannot be changed.

固定データベース ロールの名前Fixed-Database role name 説明Description
db_ownerdb_owner db_owner 固定データベース ロールのメンバーは、データベースでのすべての構成作業とメンテナンス作業を実行でき、 SQL ServerSQL Serverでデータベースを削除することもできます。Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database in SQL ServerSQL Server. ( SQL DatabaseSQL DatabaseSQL データ ウェアハウスSQL Data Warehouseでは、一部のメンテナンス作業にサーバー レベルの権限が必要であり、 db_ownersでは実行できません。)(In SQL DatabaseSQL Database and SQL データ ウェアハウスSQL Data Warehouse, some maintenance activities require server-level permissions and cannot be performed by db_owners.)
db_securityadmindb_securityadmin db_securityadmin 固定データベース ロールのメンバーは、カスタム ロールのロール メンバーシップのみの変更、ログインなしのユーザーの作成、および権限の管理を実行できます。Members of the db_securityadmin fixed database role can modify role membership for custom roles only, create users without logins, 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.

固定データベース ロールに割り当てられている権限を変更することはできません。The permissions assigned to the fixed-database roles cannot be changed. 次の図は、固定データベース ロールに割り当てられている権限を示しています。The following figure shows the permissions assigned to the fixed-database roles:

fixed_database_role_permissions

特別なロール - SQL DatabaseSQL DatabaseSQL データ ウェアハウスSQL Data WarehouseSpecial Roles for SQL DatabaseSQL Database and SQL データ ウェアハウスSQL Data Warehouse

以下のデータベース ロールは、仮想 master データベース内にのみ存在します。These database roles exist only in the virtual master database. その権限は master で実行されるアクションに制限されます。Their permissions are restricted to actions performed in master. これらのロールに追加できるのは、master のデータベース ユーザーのみです。Only database users in master can be added to these roles. これらのロールにログインを追加することはできませんが、ログインに基づいてユーザーを作成してから、そのユーザーをロールに追加することはできます。Logins cannot be added to these roles, but users can be created based on logins and then those users can be added to the roles. これらのロールに、master の包含データベース ユーザーを追加することもできます。Contained database users in master, can also be added to these roles.

ロール名Role name 説明Description
dbmanagerdbmanager データベースの作成と削除を行うことができます。Can create and delete databases. データベースを作成する dbmanager ロールのメンバーは、そのデータベースの所有者になります。これにより、ユーザーは dbo ユーザーとしてそのデータベースに接続できるようになります。A member of the dbmanager role that creates a database, becomes the owner of that database which allows that user to connect to that database as the dbo user. dbo ユーザーには、データベースでのすべてのデータベース権限があります。The dbo user has all database permissions in the database. dbmanager ロールのメンバーには、所有していないデータベースへのアクセス権が必ずしもあるとは限りません。Members of the dbmanager role do not necessarily have permission to access databases that they do not own.
loginmanagerloginmanager 仮想 master データベースのログインを作成および削除できます。Can create and delete logins in the virtual master database.

注意

サーバー レベル プリンシパルと Azure Active Directory 管理者 (構成されている場合) には SQL DatabaseSQL DatabaseSQL データ ウェアハウスSQL Data Warehouse でのすべての権限があり、すべてのロールのメンバーである必要はありません。The server-level principal and the Azure Active Directory Administrator (if configured) have all permissions in the SQL DatabaseSQL Database and SQL データ ウェアハウスSQL Data Warehouse without needing to be members of any roles. 詳細については、「SQL Database の認証と承認:アクセス権の付与」を参照してください。For more information, see SQL Database Authentication and Authorization: Granting Access.

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_ssisadmindb_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_admindc_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.

R Services の使用Working with R Services

適用対象: SQL Server (SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降)Applies to: SQL Server starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)

R Services がインストールされている場合は、パッケージの管理で追加のデータベース ロールを使用できます。When R Services is installed, additional database roles are available for managing packages. 詳細については、 SQL Server の R パッケージ管理に関するページを参照してください。For more information, see R Package management for SQL Server.

ロール名Role name 説明Description
rpkgs-usersrpkgs-users ユーザーは、rpkgs-shared ロールのメンバーによってインストールされた共有パッケージを使用することができます。Allows users to use any shared packages that were installed by members of the rpkgs-shared role.
rpkgs-privaterpkgs-private rpkgs-users ロールと同じアクセス許可で共有パッケージにアクセスできます。Provides access to shared packages with the same permissions as the rpkgs-users role. このロールのメンバーは、プライベート スコープのパッケージをインストール、削除および使用することもできます。Members of this role can also install, remove and use privately scoped packages.
rpkgs-sharedrpkgs-shared rpkgs-private ロールと同じアクセス許可を提供します。Provides the same permissions as the rpkgs-private role. このロールのメンバーであるユーザーは、共有パッケージをインストールまたは削除することもできます。Users who are members of this role can also install or remove shared packages.

データベース レベルのロールの操作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 or membership 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. Parallel Data WarehouseParallel Data Warehouse 以外のすべてのプラットフォームでは代わりに ALTER ROLE を使用する必要があります。All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL) コマンドCommand 現在のデータベースの SQL Server ロールからセキュリティ アカウントを削除します。Removes a security account from a SQL Server role in the current database. Parallel Data WarehouseParallel Data Warehouse 以外のすべてのプラットフォームでは代わりに ALTER ROLE を使用する必要があります。All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
GRANTGRANT アクセス許可Permissions ロールに権限を追加します。Adds permission to a role.
DENYDENY アクセス許可Permissions ロールに対する権限を拒否します。Denys a permission to a role.
REVOKEREVOKE アクセス許可Permissions 以前に許可または拒否した権限を取り消します。Removes a previously granted or denied permissions.

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. データベース ユーザーを public ロールから削除することはできません。Database users cannot be removed from the public role.

セキュリティ カタログ ビュー (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)