適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
データベースに含まれている、権限ごとまたは列例外の権限ごとに 1 行のデータを返します。 列権限が、対応するオブジェクトレベルの権限とは異なる場合、列権限ごとに行が存在します。 列権限が、対応するオブジェクトの権限と同じ場合、それに対する行はなく、適用される権限はオブジェクトのものです。
Important
列レベルの権限は、同一エンティティのオブジェクト レベルの権限をオーバーライドします。
| 列名 | データの種類 | Description |
|---|---|---|
| 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(変えて) DATABASEEVENT SESSION | DATABASE |
| AAMK | 任意のマスクを変更します。 | DATABASE |
| AEDS | "任意の EXTERNAL DATA SOURCE を変更" | DATABASE |
| AEFF | "任意の EXTERNAL FILE FORMAT を変更" | DATABASE |
| AL | ALTER | APPLICATION ROLE、 ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 DATABASE、 FULLTEXT CATALOG、 MESSAGE TYPE、目的、 REMOTE SERVICE BINDING、 ROLE、 ROUTE、 SCHEMA、 SERVICE、 SYMMETRIC KEY、 USER、 XML SCHEMA COLLECTION |
| ALAK | "任意の ASYMMETRIC KEY を変更" | DATABASE |
| ALAR | "任意の APPLICATION ROLE を変更" | DATABASE |
| ALAS | "任意の ASSEMBLY を変更" | DATABASE |
| ALCF | "任意の CERTIFICATE を変更" | DATABASE |
| ALDS | 任意のデータスペースを変更する | DATABASE |
| ALED | ALTER ANY(変えて) DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | "任意の FULLTEXT CATALOG を変更" | DATABASE |
| ALMT | "任意の MESSAGE TYPE を変更" | DATABASE |
| ALRL | "任意の ROLE を変更" | DATABASE |
| ALRT | "任意の ROUTE を変更" | DATABASE |
| ALSB | "任意の REMOTE SERVICE BINDING を変更" | DATABASE |
| ALSC | "任意の CONTRACT を変更" | DATABASE |
| ALSK | "任意の SYMMETRIC KEY を変更" | DATABASE |
| ALSM | "任意の SCHEMA を変更" | DATABASE |
| ALSV | "任意の SERVICE を変更" | DATABASE |
| ALTG | DDL DATABASE 変更 TRIGGER | DATABASE |
| ALUS | "任意の USER を変更" | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE | DATABASE |
| BALO | BACKUP ログ | DATABASE |
| CL | CONTROL | APPLICATION ROLE、 ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 DATABASE、 FULLTEXT CATALOG、 MESSAGE TYPE、目的、 REMOTE SERVICE BINDING、 ROLE、 ROUTE、 SCHEMA、 SERVICE、 SYMMETRIC KEY、 TYPE、 USER、 XML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | コネクト・レプリケーション | 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 | DATABASE大量作業の管理 | DATABASE |
| DL | DELETE | DATABASE、目的、 SCHEMA |
| EAES | 外部スクリプトを実行する | DATABASE |
| EX | EXECUTE | ASSEMBLY、 DATABASE、目的、 SCHEMA、 TYPE、 XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE、目的、 SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 DATABASE、 FULLTEXT CATALOG、 MESSAGE TYPE、目的、 SCHEMA、 SYMMETRIC KEY、 TYPE、 XML SCHEMA COLLECTION |
| SL | SELECT | DATABASE、目的、 SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | クエリ通知をサブスクライブする | DATABASE |
| TO | 所有権 | ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 DATABASE、 FULLTEXT CATALOG、 MESSAGE TYPE、目的、 REMOTE SERVICE BINDING、 ROLE、 ROUTE、 SCHEMA、 SERVICE、 SYMMETRIC KEY、 TYPE、 XML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE、目的、 SCHEMA |
| VW | VIEW 定義 | APPLICATION ROLE、 ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 DATABASE、 FULLTEXT CATALOG、 MESSAGE TYPE、目的、 REMOTE SERVICE BINDING、 ROLE、 ROUTE、 SCHEMA、 SERVICE、 SYMMETRIC KEY、 TYPE、 USER、 XML SCHEMA COLLECTION |
| VWCK | VIEW COLUMN ENCRYPTION KEY定義は | DATABASE |
| VWCM | VIEW COLUMN MASTER KEY定義は | DATABASE |
| VWCT | VIEW 変更追跡 | TABLE、SCHEMA |
| VWDS | VIEW DATABASE 州 | DATABASE |
REVOKE および列例外権限
ほとんどの場合、 REVOKE コマンドは GRANT または DENY エントリをsys.database_permissionsから削除します。
しかし、オブジェクトに対して権限を GRANT または DENY し、その権限をカラムに REVOKE することは可能です。 この列例外許可はsys.database_permissionsで REVOKE として表示されます。 次の例を考えてみましょう。
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
これらの権限はsys.database_permissions上でテーブル上の GRANT とカラム上の REVOKE として表示されます。
Important
REVOKE
DENYとは異なり、Salesプリンシパルは他の権限を通じてその列にアクセスできる場合があります。 もし許可を取り消すのではなく拒否していたら、カラムの内容を見ることはできなくなったSalesDENY、GRANT常に優先されるからです。
Permissions
すべてのユーザーは自分の権限を参照できます。 他のユーザーの権限を見るには、 VIEW 定義、変更、 USERの変更、またはユーザー権限が必要です。 ユーザー定義ロールを見るには、ALTER ANY ROLEやそのロールのメンバーシップ(例えばパブリック)が必要です。
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
Examples
A. データベース プリンシパルのすべてのアクセス許可を一覧表示する
次のクエリによって、データベース プリンシパルに対して明示的に付与または拒否されたアクセス許可の一覧が表示されます。
Important
固定データベース ロールのアクセス許可は、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
WHERE pe.class = 1;
C. 特定のオブジェクトの権限を一覧表示する
前の例を使用して、1 つのデータベース オブジェクトに固有のアクセス許可を照会できます。
たとえば、サンプル データベースのデータベース ユーザー testに付与される次の詳細なアクセス許可について考えますAdventureWorksDW2025。
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 pe.class = 1
AND 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