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