サーバー レベルのロール

SQL Server は、サーバー上の権利を管理するためのサーバー レベルのロールを提供します。これらのロールは、他のプリンシパルをグループ化するセキュリティ プリンシパルです。 サーバー レベルのロールは、その権限のスコープがサーバー全体に及びます (ロールは、Windows オペレーティング システムのグループに似ています)。

固定サーバー ロールは、旧バージョンとの互換性を維持するために便宜的に提供されています。 可能な限り、より詳細な権限を割り当ててください。

SQL Server は、9 つの固定サーバー ロールを提供します。 固定サーバー ロールに許可される権限は変更できません。 SQL Server 2012 以降では、ユーザー定義のサーバー ロールを作成し、そのユーザー定義のサーバー ロールにサーバー レベルの権限を追加できます。

サーバー レベルのロールには、サーバー レベルのプリンシパル (SQL Server ログイン、Windows アカウント、および Windows グループ) を追加できます。 固定サーバー ロールの各メンバーは、そのロールに他のログインを追加することができます。 ユーザー定義のサーバー ロールのメンバーは、そのロールに他のサーバー プリンシパルを追加できません。

固定サーバー レベル ロール

次の表に、固定サーバー レベル ロールとその機能を示します。

固定サーバー レベル ロール

説明

sysadmin

sysadmin 固定サーバー ロールのメンバーは、サーバーの任意の動作を実行できます。

serveradmin

serveradmin 固定サーバー ロールのメンバーは、サーバー全体の構成オプションを変更したり、サーバーをシャットダウンしたりできます。

securityadmin

securityadmin 固定サーバー ロールのメンバーは、ログインとログインのプロパティを管理します。 このメンバーは、サーバー レベルの権限を許可、拒否、および禁止できます。 また、データベースにアクセスできる場合は、データベース レベルの権限も許可、拒否、および禁止できます。 また、SQL Server ログインのパスワードをリセットできます。

セキュリティに関する注意セキュリティに関する注意

セキュリティ管理者は、データベース エンジンへのアクセスを許可する権限およびユーザー権限を構成する権限を使用して、ほとんどのサーバー権限を割り当てることができます。 securityadmin ロールは、sysadmin ロールと同等のものとして扱う必要があります。

processadmin

processadmin 固定サーバー ロールのメンバーは、SQL Server のインスタンス内で実行中のプロセスを終了できます。

setupadmin

setupadmin固定サーバー ロールのメンバーは、Transact-SQL ステートメントを使用して、リンク サーバーを追加および削除できます。 (sysadmin メンバーシップは、Management Studio を使用するときに必要になります)。

bulkadmin

bulkadmin 固定サーバー ロールのメンバーは、BULK INSERT ステートメントを実行できます。

diskadmin

diskadmin 固定サーバー ロールは、ディスク ファイルを管理するために使用します。

dbcreator

dbcreator 固定サーバー ロールのメンバーは、任意のデータベースを作成、変更、削除、および復元できます。

public

すべての SQL Server ログインは、public サーバー ロールに属しています。 サーバー プリンシパルにセキュリティ保護可能なオブジェクトに対する特定の権限が与えられていないか権限が拒否されている場合、そのユーザーは、そのオブジェクトに対して public に付与されている権限を継承します。すべてのユーザーがオブジェクトを使用できるようにする場合は、対象のオブジェクトに public 権限のみを割り当てます。 public のメンバーシップを変更することはできません。

注意

public は、他のロールとは実装方法が異なります。 しかし、public から権限の許可、拒否、および取り消しを行うことができます。

サーバーレベルの権限

ユーザー定義のサーバー ロールに追加できるのは、サーバー レベルの権限のみです。 サーバー レベルの権限の一覧を表示するには、次のステートメントを実行します。

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

権限の詳細については、「権限 (データベース エンジン)」および「sys.fn_builtin_permissions (Transact-SQL)」を参照してください。

サーバー レベルのロールの操作

次の表では、サーバー レベルのロールを操作するためのコマンド、ビュー、および関数について説明します。

機能

説明

sp_helpsrvrole (Transact-SQL)

メタデータ

サーバー レベルのロールの一覧を返します。

sp_helpsrvrolemember (Transact-SQL)

メタデータ

サーバー レベルのロールのメンバーに関する情報を返します。

sp_srvrolepermission (Transact-SQL)

メタデータ

サーバー レベルのロールの権限を表示します。

IS_SRVROLEMEMBER (Transact-SQL)

メタデータ

SQL Server ログインが、指定されたサーバー レベルのロールのメンバーであるかどうかを示します。

sys.server_role_members (Transact-SQL)

メタデータ

各サーバー レベルのロールのメンバーごとに 1 行のデータを返します。

sp_addsrvrolemember (Transact-SQL)

コマンド

ログインをサーバー レベルのロールのメンバーとして追加します。 非推奨。 代わりに ALTER SERVER ROLE を使用してください。

sp_dropsrvrolemember (Transact-SQL)

コマンド

サーバー レベルのロールから、SQL Server ログインや、Windows ユーザーまたはグループを削除します。 非推奨。 代わりに ALTER SERVER ROLE を使用してください。

CREATE SERVER ROLE (Transact-SQL)

コマンド

ユーザー定義サーバー ロールを作成します。

ALTER SERVER ROLE (Transact-SQL)

コマンド

サーバー ロールのメンバーシップを変更、またはユーザー定義のサーバー ロールの名前を変更します。

DROP SERVER ROLE (Transact-SQL)

コマンド

ユーザー定義サーバー ロールを削除します。

IS_SRVROLEMEMBER (Transact-SQL)

関数

サーバー ロールのメンバーシップを決定します。

関連項目

参照

データベース レベルのロール

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

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

GRANT (サーバー プリンシパルの権限の許可) (Transact-SQL)

REVOKE (サーバー プリンシパルの権限の取り消し) (Transact-SQL)

DENY (サーバー プリンシパルの権限の拒否) (Transact-SQL)

概念

SQL Server の保護

サーバー ロールの作成