sp_addrole (Transact-SQL)
適用対象: SQL サーバー
現在のデータベースに新しいデータベース ロールを作成します。
重要
sp_addrole
は、以前のバージョンの SQL Server との互換性のために含まれており、今後のリリースではサポートされない可能性があります。 代わりに CREATE ROLE を使用してください。
構文
sp_addrole
[ @rolename = ] N'rolename'
[ , [ @ownername = ] N'ownername' ]
[ ; ]
引数
[ @rolename = ] N'rolename'
新しいデータベース ロールの名前。 @rolename は sysname で、既定値はありません。 @rolename は有効な識別子である必要があり、現在のデータベースにまだ存在してはなりません。
[ @ownername = ] N'ownername'
新しいデータベース ロールの所有者。 @ownername は sysname で、現在実行中のユーザーの既定値です。 @ownername は、現在のデータベースのデータベース ユーザーまたはデータベース ロールである必要があります。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
SQL Server データベース ロールの名前には、文字、記号、数字など、1 ~ 128 文字を含めることができます。 データベース ロールの名前には、円記号 (\
)、 NULL
、または空の文字列 (''
) を含めることはできません。
データベース ロールを追加したら、 sp_addrolemember (Transact-SQL) を使用してプリンシパルをロールに追加します。 GRANT
、DENY
、またはREVOKE
ステートメントを使用してデータベース ロールにアクセス許可を適用すると、データベース ロールのメンバーは、アクセス許可が自分のアカウントに直接適用されたかのように、これらのアクセス許可を継承します。
Note
新しいサーバー ロールを作成できません。 ロールは、データベース レベルでのみ作成できます。
sp_addrole
は、ユーザー定義トランザクション内では使用できません。
アクセス許可
データベースに対する CREATE ROLE
権限が必要です。 スキーマを作成する場合は、データベースに CREATE SCHEMA
が必要です。 @ownernameがユーザーまたはグループとして指定されている場合は、そのユーザーまたはグループに対するIMPERSONATE
が必要です。 @ownernameがロールとして指定されている場合は、そのロールまたはそのロールのメンバーに対するALTER
アクセス許可が必要です。 所有者がアプリケーション ロールとして指定されている場合は、そのアプリケーション ロール ALTER
アクセス許可が必要です。
例
次の例では、Managers
という新しいロールを現在のデータベースに追加します。
EXEC sp_addrole 'Managers';