sp_addrole (Transact-SQL)

適用対象:SQL Server

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

重要

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

Transact-SQL 構文表記規則

構文

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

引数

[ @rolename = ] N'rolename'

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

[ @ownername = ] N'ownername'

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

リターン コードの値

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

解説

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

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

Note

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

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

アクセス許可

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

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

EXEC sp_addrole 'Managers';