sp_addrole (Transact-SQL)

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

ms189743.note(ja-jp,SQL.90).gif重要 :
sp_addrole は、以前のバージョンの Microsoft SQL Server との互換性を提供するためのもので、将来のリリースではサポートされない可能性があります。代わりに CREATE ROLE を使用してください。

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

構文

sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ] 

引数

  • [ @rolename = ] 'role'
    新しいデータベース ロールの名前を指定します。role のデータ型は sysname であり、既定値はありません。role には、有効な識別子 (ID) を使用し、現在のデータベース内に存在しないロールを指定する必要があります。
  • [ @ownername =] 'owner'
    新しいデータベース ロールの所有者を指定します。owner のデータ型は sysname で、既定値は現在実行しているユーザーです。owner は、現在のデータベースのデータベース ユーザーまたはデータベース ロールであることが必要です。

解説

SQL Server データベース ロールは 1 ~ 128 文字で指定でき、英数字と記号を含めることができます。データベース ロールの名前に円記号 (\) を含めたり、NULL または空文字列 ('') を指定することはできません。

データベース ロールを追加した後、プリンシパルをロールに追加するには sp_addrolemember (Transact-SQL) を使用します。GRANT、DENY、または REVOKE ステートメントを使用して権限をデータベース ロールに適用すると、そのデータベース ロールのメンバには、それぞれのアカウントに直接適用した場合と同様に、権限が継承されます。

ms189743.note(ja-jp,SQL.90).gifメモ :
新しいサーバー ロールを作成することはできません。ロールは、データベース レベルでのみ作成できます。

ユーザーが定義したトランザクション内では、sp_addrole は実行できません。

権限

データベースに対する CREATE ROLE 権限が必要です。スキーマを作成する場合は、データベースに対する CREATE SCHEMA 権限が必要です。owner をユーザーまたはグループとして指定する場合は、そのユーザーまたはグループに対する IMPERSONATE 権限が必要です。owner をロールとして指定する場合は、そのロールまたはそのロールのメンバに対する ALTER 権限が必要です。所有者をアプリケーション ロールとして指定する場合は、そのアプリケーション ロールに対する ALTER 権限が必要です。

戻り値

0 (成功) または 1 (失敗)

次の例では、Managers という新しいロールを現在のデータベースに追加します。

EXEC sp_addrole 'Managers'

参照

関連項目

システム ストアド プロシージャ (Transact-SQL)
セキュリティ ストアド プロシージャ (Transact-SQL)
CREATE ROLE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手