sys.database_permissions (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス
データベースに含まれている、権限ごとまたは列例外の権限ごとに 1 行のデータを返します。 列権限が、対応するオブジェクトレベルの権限とは異なる場合、列権限ごとに行が存在します。 列権限が、対応するオブジェクトの権限と同じ場合、それに対する行はなく、適用される権限はオブジェクトのものです。
重要
列レベルの権限は、同一エンティティのオブジェクト レベルの権限をオーバーライドします。
列名 | データ型 | 説明 |
---|---|---|
class | tinyint | 権限許可が存在するクラスを識別します。 詳細については、「sys.securable_classes (Transact-SQL)」を参照してください。 0 = データベース 1 = オブジェクトまたは列 3 = スキーマ 4 = データベース プリンシパル 5 = アセンブリ - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 6 = 型 10 = XML スキーマ コレクション - 適用対象: SQL Server 2008 (10.0.x) 以降のバージョン。 15 = メッセージの種類 - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 16 = サービス コントラクト - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 17 = サービス - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 18 = リモート サービス バインド - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 19 = ルート - への適用: SQL Server 2008 (10.0.x) 以降のバージョン。 23 =フルテキスト カタログ - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 24 = 対称キー - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 25 = 証明書 - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 26 = 非対称キー - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 29 = フルテキスト ストップリスト - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 31 = 検索プロパティ リスト - アプリケーション: SQL Server 2008 (10.0.x) 以降のバージョン。 32 = データベース スコープ資格情報 - アプリケーション: SQL Server 2016 (13.x) 以降のバージョン。 34 = 外部言語 - アプリケーション: SQL Server 2019 (15.x) 以降のバージョン。 |
class_desc | nvarchar(60) | 権限が存在するクラスの説明。 DATABASE OBJECT_OR_COLUMN SCHEMA DATABASE_PRINCIPAL ASSEMBLY TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SERVICE REMOTE_SERVICE_BINDING ROUTE FULLTEXT_CATALOG SYMMETRIC_KEYS CERTIFICATE ASYMMETRIC_KEY FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL EXTERNAL LANGUAGE |
major_id | int | 権限が存在するリソースの ID。クラスに基づいて解釈されます。 通常、 major_id は、クラスが表すものに適用される ID の種類にすぎません。 0 = データベース自体 >0 = ユーザー オブジェクトのオブジェクト ID <0 = システム オブジェクトのオブジェクト ID |
minor_id | int | 権限が存在するリソースのセカンダリ ID。クラスに基づいて解釈されます。 多くの場合、 minor_id は 0 です。オブジェクトのクラスに使用できるサブカテゴリがないためです。 それ以外の場合、これはテーブルの列 ID です。 |
grantee_principal_id | int | 権限が付与される対象のデータベース プリンシパル ID。 |
grantor_principal_id | int | これらの権限の付与者のデータベース プリンシパル ID。 |
type | char(4) | データベースの権限の種類。 権限の種類の一覧については、次の表を参照してください。 |
permission_name | nvarchar(128) | 権限名。 |
state | char(1) | 権限の状態: D = 拒否 R = 取り消し G = 許可 W = 許可の許可オプション |
state_desc | nvarchar(60) | 権限の状態の説明。 DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
データベース権限
次の種類の権限を使用できます。
アクセス許可の種類 | アクセス許可名 | 適用されるセキュリティ保護可能なリソース |
---|---|---|
AADS | ALTER ANY DATABASE EVENT SESSION | DATABASE |
AAMK | 任意のマスクを変更します。 | DATABASE |
AEDS | すべての外部データ ソースを変更します。 | DATABASE |
AEFF | 任意の外部のファイル形式を変更します。 | DATABASE |
AL | ALTER | APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、USER、XML SCHEMA COLLECTION |
ALAK | ALTER ANY ASYMMETRIC KEY | DATABASE |
ALAR | ALTER ANY APPLICATION ROLE | DATABASE |
ALAS | ALTER ANY ASSEMBLY | DATABASE |
ALCF | ALTER ANY CERTIFICATE | DATABASE |
ALDS | ALTER ANY DATASPACE | DATABASE |
ALED | ALTER ANY DATABASE EVENT NOTIFICATION | DATABASE |
ALFT | ALTER ANY FULLTEXT CATALOG | DATABASE |
ALMT | ALTER ANY MESSAGE TYPE | DATABASE |
ALRL | ALTER ANY ROLE | DATABASE |
ALRT | ALTER ANY ROUTE | DATABASE |
ALSB | ALTER ANY REMOTE SERVICE BINDING | DATABASE |
ALSC | ALTER ANY CONTRACT | DATABASE |
ALSK | ALTER ANY SYMMETRIC KEY | DATABASE |
ALSM | ALTER ANY SCHEMA | DATABASE |
ALSV | ALTER ANY SERVICE | DATABASE |
ALTG | ALTER ANY DATABASE DDL TRIGGER | DATABASE |
ALUS | ALTER ANY USER | DATABASE |
AUTH | AUTHENTICATE | DATABASE |
BADB | BACKUP DATABASE | DATABASE |
BALO | BACKUP LOG | DATABASE |
CL | CONTROL | APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、USER、XML SCHEMA COLLECTION |
CO | CONNECT | DATABASE |
CORP | CONNECT REPLICATION | DATABASE |
CP | CHECKPOINT | DATABASE |
CRAG | CREATE AGGREGATE | DATABASE |
CRAK | CREATE ASYMMETRIC KEY | DATABASE |
CRAS | CREATE ASSEMBLY | DATABASE |
CRCF | CREATE CERTIFICATE | DATABASE |
CRDB | CREATE DATABASE | DATABASE |
CRDF | CREATE DEFAULT | DATABASE |
CRED | CREATE DATABASE DDL EVENT NOTIFICATION | DATABASE |
CRFN | CREATE FUNCTION | DATABASE |
CRFT | CREATE FULLTEXT CATALOG | DATABASE |
CRMT | CREATE MESSAGE TYPE | DATABASE |
CRPR | CREATE PROCEDURE | DATABASE |
CRQU | CREATE QUEUE | DATABASE |
CRRL | CREATE ROLE | DATABASE |
CRRT | CREATE ROUTE | DATABASE |
CRRU | CREATE RULE | DATABASE |
CRSB | CREATE REMOTE SERVICE BINDING | DATABASE |
CRSC | CREATE CONTRACT | DATABASE |
CRSK | CREATE SYMMETRIC KEY | DATABASE |
CRSM | CREATE SCHEMA | DATABASE |
CRSN | CREATE SYNONYM | DATABASE |
CRSO | 適用対象: SQL Server 2012 (11.x) 以降のバージョン。 CREATE SEQUENCE |
DATABASE |
CRSV | CREATE SERVICE | DATABASE |
CRTB | CREATE TABLE | DATABASE |
CRTY | CREATE TYPE | DATABASE |
CRVW | CREATE VIEW | DATABASE |
CRXS | 適用対象: SQL Server 2008 (10.0.x) 以降のバージョン。 CREATE XML SCHEMA COLLECTION |
DATABASE |
DABO | ADMINISTER DATABASE BULK OPERATIONS | DATABASE |
DL | DELETE | DATABASE、OBJECT、SCHEMA |
EAES | EXECUTE ANY EXTERNAL SCRIPT | DATABASE |
EX | EXECUTE | ASSEMBLY、DATABASE、OBJECT、SCHEMA、TYPE、XML SCHEMA COLLECTION |
IM | IMPERSONATE | User |
IN | INSERT | DATABASE、OBJECT、SCHEMA |
RC | RECEIVE | OBJECT |
RF | REFERENCES | ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、SCHEMA、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION |
SL | SELECT | DATABASE、OBJECT、SCHEMA |
SN | SEND | SERVICE |
SPLN | SHOWPLAN | DATABASE |
SUQN | SUBSCRIBE QUERY NOTIFICATIONS | DATABASE |
TO | TAKE OWNERSHIP | ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、XML SCHEMA COLLECTION |
UP | UPDATE | DATABASE、OBJECT、SCHEMA |
VW | VIEW DEFINITION | APPLICATION ROLE、ASSEMBLY、ASYMMETRIC KEY、CERTIFICATE、CONTRACT、DATABASE、FULLTEXT CATALOG、MESSAGE TYPE、OBJECT、REMOTE SERVICE BINDING、ROLE、ROUTE、SCHEMA、SERVICE、SYMMETRIC KEY、TYPE、USER、XML SCHEMA COLLECTION |
VWCK | 列の暗号化キーの定義を表示します。 | DATABASE |
VWCM | 任意の列のマスター_キーの定義の表示 | DATABASE |
VWCT | VIEW CHANGE TRACKING | TABLE、SCHEMA |
VWDS | VIEW DATABASE STATE | DATABASE |
アクセス許可
すべてのユーザーは自分の権限を参照できます。 他のユーザーの権限を表示するには、VIEW DEFINITION、ALTER ANY USER、またはユーザーに対する任意の権限が必要です。 ユーザー定義ロールを参照するには、ALTER ANY ROLE、またはロールのメンバーシップ (パブリックなど) が必要です。
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
A. データベース プリンシパルのすべてのアクセス許可を一覧表示する
次のクエリによって、データベース プリンシパルに対して明示的に付与または拒否されたアクセス許可の一覧が表示されます。
重要
固定データベース ロールのアクセス許可は、sys.database_permissions
には表示されません。 このため、データベース プリンシパルには、ここに一覧表示されない別のアクセス許可がある場合があります。
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id;
B. データベース内のスキーマ オブジェクトに対する権限を一覧表示する
次のクエリでは、 sys.database_principals と sys.database_permissions
を sys.objects および sys.schemas に結合し 特定のスキーマ オブジェクトに対して許可または拒否されたアクセス許可を一覧表示します。
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
C: 特定のオブジェクトの権限を一覧表示する
前の例を使用して、1 つのデータベース オブジェクトに固有のアクセス許可を照会できます。
たとえば、サンプル データベースのデータベース ユーザー test
に付与される次の詳細なアクセス許可について考えます AdventureWorksDW2022
。
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
dbo.vAssocSeqOrders
に割り当てられている詳細なアクセス許可を見つけます。
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
出力を返します。
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders