GRANT (アセンブリの権限の許可) (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
アセンブリに対する権限を許可します。
構文
GRANT { permission [ ,...n ] } ON ASSEMBLY :: assembly_name
TO database_principal [ ,...n ]
[ WITH GRANT OPTION ]
[ AS granting_principal ]
引数
permission
アセンブリで許可できる権限を指定します。 以下に一覧を示します。
ON ASSEMBLY ::assembly_name
権限を許可するアセンブリを指定します。 スコープ修飾子 "::" が必要です。
database_principal
権限を許可するプリンシパルを指定します。 次のいずれかになります。
- データベース ユーザー
- データベース ロール (database role)
- アプリケーション ロール (application role)
- Windows ログインにマップされているデータベース ユーザー
- Windows グループにマップされているデータベース ユーザー
- 証明書にマップされているデータベース ユーザー
- 非対称キーにマップされているデータベース ユーザー
- サーバー プリンシパルにマップされていないデータベース ユーザー
GRANT OPTION
権限が許可されたプリンシパルが、この権限を他のプリンシパルにも許可できることを示します。
AS granting_principal
このクエリを実行するプリンシパルが権限を許可する権利を取得した、元のプリンシパルを指定します。 次のいずれかになります。
- データベース ユーザー
- データベース ロール (database role)
- アプリケーション ロール (application role)
- Windows ログインにマップされているデータベース ユーザー
- Windows グループにマップされているデータベース ユーザー
- 証明書にマップされているデータベース ユーザー
- 非対称キーにマップされているデータベース ユーザー
- サーバー プリンシパルにマップされていないデータベース ユーザー
注釈
アセンブリは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次に、アセンブリで許可できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
アセンブリ権限 | 権限が含まれるアセンブリ権限 | 権限が含まれるデータベース権限 |
---|---|---|
CONTROL | CONTROL | CONTROL |
TAKE OWNERSHIP | CONTROL | CONTROL |
ALTER | CONTROL | ALTER ANY ASSEMBLY |
REFERENCES | CONTROL | REFERENCES |
VIEW DEFINITION | CONTROL | VIEW DEFINITION |
アクセス許可
権限の許可者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION によって与えられた権限を保持しているか、権限が暗黙的に与えられる上位の権限を保持している必要があります。
AS オプションを使用する場合は、次の追加要件があります。
AS granting_principal | 必要な追加権限 |
---|---|
データベース ユーザー | ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
Windows ログインにマップされているデータベース ユーザー | ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
Windows グループにマップされているデータベース ユーザー | Windows グループのメンバーシップ、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
証明書にマップされているデータベース ユーザー | db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
非対称キーにマップされているデータベース ユーザー | db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
サーバー プリンシパルにマップされていないデータベース ユーザー | ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
データベース ロール | ロールに対する ALTER 権限、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
アプリケーション ロール | ロールに対する ALTER 権限、db_securityadmin 固定データベース ロールのメンバーシップ、db_owner 固定データベース ロールのメンバーシップ、または sysadmin 固定サーバー ロールのメンバーシップ。 |
オブジェクトの所有者は、所有するオブジェクトの権限を許可できます。 セキュリティ保護可能なリソースに対して CONTROL 権限があるプリンシパルは、そのリソースの権限を許可できます。
sysadmin 固定サーバー ロールのメンバーなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を許可できます。 db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を許可できます。 スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を許可できます。
参照
GRANT (Transact-SQL)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)
CREATE CERTIFICATE (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)
暗号化階層