sp_addrole (Transact-SQL)

適用対象:SQL Server

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

重要

sp_addroleは、以前のバージョンの Microsoft SQL Serverとの互換性のために含まれており、今後のリリースではサポートされない可能性があります。 代わりに CREATE ROLE を 使用してください。

Transact-SQL 構文表記規則

構文

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

引数

[ @rolename = ] 'role' 新しいデータベース ロールの名前です。 rolesysname であり、既定値はありません。 role は有効な識別子 (ID) である必要があり、現在のデータベースにまだ存在してはなりません。

[ @ownername = ] 'owner' 新しいデータベース ロールの所有者です。 ownersysname で、現在実行中のユーザーの既定値です。 owner は、現在のデータベースのデータベース ユーザーまたはデータベース ロールである必要があります。

リターン コードの値

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

解説

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

データベース ロールを追加したら、 sp_addrolemember (Transact-SQL) を使用してロールにプリンシパルを追加します。 GRANT、DENY、または REVOKE ステートメントを使用してデータベース ロールにアクセス許可を適用すると、データベース ロールのメンバーは、アクセス許可がアカウントに直接適用されたかのように、これらのアクセス許可を継承します。

Note

新しいサーバー ロールを作成できません。 ロールは、データベース レベルでのみ作成できます。

sp_addrole は、ユーザー定義トランザクション内では使用できません。

アクセス許可

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

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

EXEC sp_addrole 'Managers';  

参照

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