次の方法で共有


sp_addrole (Transact-SQL)

適用対象: SQL サーバー

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

重要

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

Transact-SQL 構文表記規則

構文

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

引数

[ @rolename = ] N'rolename'

新しいデータベース ロールの名前。 @rolenamesysname で、既定値はありません。 @rolename は有効な識別子である必要があり、現在のデータベースにまだ存在してはなりません。

[ @ownername = ] N'ownername'

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

リターン コードの値

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

解説

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

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

Note

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

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

アクセス許可

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

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

EXEC sp_addrole 'Managers';