sp_addrole (Transact-SQL)

現在のデータベースに新しいデータベース ロールを作成します。

重要な注意事項重要

sp_addrole は、以前のバージョンの MicrosoftSQL Server との互換性を提供するためのもので、将来のリリースではサポートされない可能性があります。代わりに CREATE ROLE を使用してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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'