サーバー レベルのロールServer-Level Roles

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server は、サーバー上の権限を管理するためのサーバー レベルのロールを提供します。provides server-level roles to help you manage the permissions on a server. これらのロールは、他のプリンシパルをグループ化するセキュリティ プリンシパルです。These roles are security principals that group other principals. サーバー レベルのロールは、その権限のスコープがサーバー全体に及びますServer-level roles are server-wide in their permissions scope. (ロール は、Windows オペレーティング システムの グループ に似ています)。(Roles are like groups in the Windows operating system.)

固定サーバー ロールは、旧バージョンとの互換性を維持するために便宜的に提供されています。Fixed server roles are provided for convenience and backward compatibility. 可能な限り、より詳細な権限を割り当ててください。Assign more specific permissions whenever possible.

SQL ServerSQL Server は、9 つの固定サーバー ロールを提供します。provides nine fixed server roles. 固定サーバー ロール (public を除く) に付与されるアクセス許可は変更できません。The permissions that are granted to the fixed server roles (except public) cannot be changed. SQL Server 2012 (11.x)SQL Server 2012 (11.x)以降では、ユーザー定義のサーバー ロールを作成し、そのユーザー定義のサーバー ロールにサーバー レベルの権限を追加できます。Beginning with SQL Server 2012 (11.x)SQL Server 2012 (11.x), you can create user-defined server roles and add server-level permissions to the user-defined server roles.

サーバー レベルのロールには、サーバー レベルのプリンシパル (SQL ServerSQL Server ログイン、Windows アカウント、および Windows グループ) を追加できます。You can add server-level principals ( SQL ServerSQL Server logins, Windows accounts, and Windows groups) into server-level roles. 固定サーバー ロールの各メンバーは、そのロールに他のログインを追加することができます。Each member of a fixed server role can add other logins to that same role. ユーザー定義のサーバー ロールのメンバーは、そのロールに他のサーバー プリンシパルを追加できません。Members of user-defined server roles cannot add other server principals to the role.

注意

サーバー レベルの権限は、SQL Database や SQL Data Warehouse では使用できません。Server-level permissions are not available in SQL Database or SQL Data Warehouse. SQL Database の詳細については、「データベース アクセスの制御と許可」を参照してください。For more information about SQL Database, see Controlling and granting database access.

固定サーバー レベル ロールFixed Server-Level Roles

次の表に、固定サーバー レベル ロールとその機能を示します。The following table shows the fixed server-level roles and their capabilities.

固定サーバー レベル ロールFixed server-level role [説明]Description
sysadminsysadmin sysadmin 固定サーバー ロールのメンバーは、サーバーに対するすべての操作を実行できます。Members of the sysadmin fixed server role can perform any activity in the server.
serveradminserveradmin serveradmin 固定サーバー ロールのメンバーは、サーバー全体の構成オプションを変更したり、サーバーをシャットダウンしたりできます。Members of the serveradmin fixed server role can change server-wide configuration options and shut down the server.
securityadminsecurityadmin securityadmin 固定サーバー ロールのメンバーは、ログインとログインのプロパティを管理します。Members of the securityadmin fixed server role manage logins and their properties. サーバー レベルの権限を GRANTDENYREVOKE することができます。They can GRANT, DENY, and REVOKE server-level permissions. また、データベースにアクセスできる場合は、データベース レベルの権限も GRANTDENYREVOKE できます。They can also GRANT, DENY, and REVOKE database-level permissions if they have access to a database. また、 SQL ServerSQL Server ログインのパスワードをリセットできます。Additionally, they can reset passwords for SQL ServerSQL Server logins.

重要: セキュリティ管理者は、データベース エンジンDatabase Engineへのアクセスを許可する権限およびユーザー権限を構成する権限を使用して、ほとんどのサーバー権限を割り当てることができます。IMPORTANT: The ability to grant access to the データベース エンジンDatabase Engine and to configure user permissions allows the security admin to assign most server permissions. securityadmin ロールは、 sysadmin ロールと同等のものとして扱う必要があります。The securityadmin role should be treated as equivalent to the sysadmin role.
processadminprocessadmin processadmin 固定サーバー ロールのメンバーは、SQL ServerSQL Server のインスタンス内で実行中のプロセスを終了できます。Members of the processadmin fixed server role can end processes that are running in an instance of SQL ServerSQL Server.
setupadminsetupadmin setupadmin 固定サーバー ロールのメンバーは、Transact-SQLTransact-SQL ステートメントを使用して、リンク サーバーを追加および削除できます Members of the setupadmin fixed server role can add and remove linked servers by using Transact-SQLTransact-SQL statements. (Management StudioManagement Studio を使用するときは sysadmin メンバーシップが必要になります)。(sysadmin membership is needed when using Management StudioManagement Studio.)
bulkadminbulkadmin bulkadmin 固定サーバー ロールのメンバーは、BULK INSERT ステートメントを実行できます。Members of the bulkadmin fixed server role can run the BULK INSERT statement.
diskadmindiskadmin diskadmin 固定サーバー ロールは、ディスク ファイルを管理するために使用します。The diskadmin fixed server role is used for managing disk files.
dbcreatordbcreator dbcreator 固定サーバー ロールのメンバーは、任意のデータベースを作成、変更、削除、および復元できます。Members of the dbcreator fixed server role can create, alter, drop, and restore any database.
publicpublic すべての SQL ServerSQL Server ログインは、public サーバー ロールに属しています。Every SQL ServerSQL Server login belongs to the public server role. サーバー プリンシパルにセキュリティ保護可能なオブジェクトに対する特定の権限が与えられていないか権限が拒否されている場合、そのユーザーは、そのオブジェクトに対して public に付与されている権限を継承します。When a server principal has not been granted or denied specific permissions on a securable object, the user inherits the permissions granted to public on that object. すべてのユーザーがオブジェクトを使用できるようにする場合は、対象のオブジェクトに public 権限のみを割り当てます。Only assign public permissions on any object when you want the object to be available to all users. public のメンバーシップを変更することはできません。You cannot change membership in public.

注: public 他のロールと実装方法が異なり、public 固定サーバー ロールからは権限を許可、拒否、または取り消しすることができます。Note: public is implemented differently than other roles, and permissions can be granted, denied, or revoked from the public fixed server roles.

固定サーバー ロールの権限Permissions of Fixed Server Roles

各固定サーバー ロールには、特定の権限が割り当てられます。Each fixed server role has certain permissions assigned to it. 次の図は、サーバー ロールに割り当てられている権限を示しています。The following graphic shows the permissions assigned to the server roles.
fixed_server_role_permissions

重要

CONTROL SERVER 権限は sysadmin 固定サーバー ロールと似ていますが、同じではありません。The CONTROL SERVER permission is similar but not identical to the sysadmin fixed server role. 権限があることはロールのメンバーシップを意味せず、ロールのメンバーシップによって権限は付与されません。Permissions do not imply role memberships and role memberships do not grant permissions. (例:(E.g. CONTROL SERVERsysadmin 固定サーバー ロールのメンバーシップを意味しません)。ただし、ロールと同等の権限の間で借用が可能な場合があります。CONTROL SERVER does not imply membership in the sysadmin fixed server role.) However, it is sometimes possible to impersonate between roles and equivalent permissions. ほとんどの DBCC コマンドと多くのシステム プロシージャには、sysadmin 固定サーバー ロールのメンバーシップが必要です。Most DBCC commands and many system procedures require membership in the sysadmin fixed server role. sysadmin メンバーシップを必要とする 171 のシステム ストアド プロシージャの一覧については、Andreas Wolter によるブログ投稿「 CONTROL SERVER と sysadmin/sa: 権限、システム プロシージャ、DBCC、自動スキーマ作成、および特権のエスカレーション - 注意」を参照してください。For a list of 171 system stored procedures that require sysadmin membership, see the following blog post by Andreas Wolter CONTROL SERVER vs. sysadmin/sa: permissions, system procedures, DBCC, automatic schema creation and privilege escalation - caveats.

サーバーレベルの権限Server-Level Permissions

ユーザー定義のサーバー ロールに追加できるのは、サーバー レベルの権限のみです。Only server-level permissions can be added to user-defined server roles. サーバー レベルの権限の一覧を表示するには、次のステートメントを実行します。To list the server-level permissions, execute the following statement. サーバー レベルの権限は、次のとおりです。The server-level permissions are:

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;  

権限の詳細については、「アクセス許可 (データベース エンジン)」および「sys.fn_builtin_permissions (Transact-SQL)」を参照してください。For more information about permissions, see Permissions (Database Engine) and sys.fn_builtin_permissions (Transact-SQL).

サーバー レベルのロールの操作Working with Server-Level Roles

次の表では、サーバー レベルのロールを操作するためのコマンド、ビュー、および関数について説明します。The following table explains the commands, views, and functions that you can use to work with server-level roles.

機能Feature Type [説明]Description
sp_helpsrvrole (Transact-SQL)sp_helpsrvrole (Transact-SQL) メタデータMetadata サーバー レベルのロールの一覧を返します。Returns a list of server-level roles.
sp_helpsrvrolemember (Transact-SQL)sp_helpsrvrolemember (Transact-SQL) メタデータMetadata サーバー レベルのロールのメンバーに関する情報を返します。Returns information about the members of a server-level role.
sp_srvrolepermission (Transact-SQL)sp_srvrolepermission (Transact-SQL) メタデータMetadata サーバー レベルのロールの権限を表示します。Displays the permissions of a server-level role.
IS_SRVROLEMEMBER (Transact-SQL)IS_SRVROLEMEMBER (Transact-SQL) メタデータMetadata SQL ServerSQL Server ログインが、指定されたサーバー レベルのロールのメンバーであるかどうかを示します。Indicates whether a SQL ServerSQL Server login is a member of the specified server-level role.
sys.server_role_members (Transact-SQL)sys.server_role_members (Transact-SQL) メタデータMetadata 各サーバー レベルのロールのメンバーごとに 1 行のデータを返します。Returns one row for each member of each server-level role.
sp_addsrvrolemember (Transact-SQL)sp_addsrvrolemember (Transact-SQL) コマンドCommand ログインをサーバー レベルのロールのメンバーとして追加します。Adds a login as a member of a server-level role. 非推奨。Deprecated. 代わりに ALTER SERVER ROLE を使用してください。Use ALTER SERVER ROLE instead.
sp_dropsrvrolemember (Transact-SQL)sp_dropsrvrolemember (Transact-SQL) コマンドCommand サーバー レベルのロールから、 SQL ServerSQL Server ログインや、Windows ユーザーまたはグループを削除します。Removes a SQL ServerSQL Server login or a Windows user or group from a server-level role. 非推奨。Deprecated. 代わりに ALTER SERVER ROLE を使用してください。Use ALTER SERVER ROLE instead.
CREATE SERVER ROLE (Transact-SQL)CREATE SERVER ROLE (Transact-SQL) コマンドCommand ユーザー定義サーバー ロールを作成します。Creates a user-defined server role.
ALTER SERVER ROLE (Transact-SQL)ALTER SERVER ROLE (Transact-SQL) コマンドCommand サーバー ロールのメンバーシップを変更、またはユーザー定義のサーバー ロールの名前を変更します。Changes the membership of a server role or changes name of a user-defined server role.
DROP SERVER ROLE (Transact-SQL)DROP SERVER ROLE (Transact-SQL) コマンドCommand ユーザー定義サーバー ロールを削除します。Removes a user-defined server role.
IS_SRVROLEMEMBER (Transact-SQL)IS_SRVROLEMEMBER (Transact-SQL) 機能Function サーバー ロールのメンバーシップを決定します。Determines membership of server role.

参照See Also

データベース レベルのロールDatabase-Level Roles
セキュリティ カタログ ビュー (Transact-SQL)Security Catalog Views (Transact-SQL)
セキュリティ関数 (Transact-SQL)Security Functions (Transact-SQL)
SQL Server の保護Securing SQL Server
GRANT (サーバー プリンシパルの権限の許可) (Transact-SQL)GRANT Server Principal Permissions (Transact-SQL)
REVOKE (サーバー プリンシパルの権限の取り消し) (Transact-SQL)REVOKE Server Principal Permissions (Transact-SQL)
DENY (サーバー プリンシパルの権限の拒否) (Transact-SQL)DENY Server Principal Permissions (Transact-SQL)
サーバー ロールの作成Create a Server Role