sys.database_permissions (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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_principalssys.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 つのデータベース オブジェクトに固有のアクセス許可を照会できます。

たとえば、サンプル データベースAdventureWorksDW2022のデータベース ユーザーtestに付与される次の詳細なアクセス許可について考えてみましょう。

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

関連項目

次のステップ