sp_addrole (Transact-SQL)
適用対象:SQL Server
現在のデータベースに新しいデータベース ロールを作成します。
重要
sp_addrole
は、以前のバージョンの SQL Server との互換性のために含まれており、今後のリリースではサポートされない可能性があります。 代わりに CREATE ROLE を使用してください。
構文
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';
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示