sys.database_permissions (Transact-SQL)

データベースに含まれている、権限ごとまたは列例外の権限ごとに 1 行のデータを返します。 列権限が、対応するオブジェクトレベルの権限とは異なる場合、列権限ごとに行が存在します。 列権限が、対応するオブジェクト権限と同じ場合、この列権限に対する行は存在せず、使用される実際の権限は、オブジェクトの権限となります。

重要な注意事項重要

列レベルの権限は、同じエンティティ上のオブジェクトレベルの権限をオーバーライドします。

列名

データ型

説明

クラス

tinyint

権限が存在するクラスの識別子。

0 = データベース

1 = オブジェクトまたは列

3 = スキーマ

4 = データベース プリンシパル

5 = アセンブリ

6 = 型

10 = XML スキーマ コレクション

15 = メッセージ型

16 = サービス コントラクト

17 = サービス

18 = リモート サービス バインド

19 = ルート

23 = フルテキスト カタログ

24 = 対称キー

25 = 証明書

26 = 非対称キー

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_KEY

CERTIFICATE

ASYMMETRIC_KEY

major_id

int

権限が存在するリソースの ID。クラスに基づいて解釈されます。 ほとんどの場合、クラスが表すリソースに適用される ID になります。 標準以外の場合は、次のように解釈されます。

0 = 常に 0

1 = オブジェクト ID

負の ID は、システム オブジェクトに割り当てられます。

minor_id

int

権限が存在するリソースのセカンダリ ID。クラスに基づいて解釈されます。 ほとんどの場合は 0 です。 0 以外の場合は、次のようになります。

1 = 列の場合は、列の ID。 列以外でオブジェクトの場合は、0。

grantee_principal_id

int

権限が許可されているデータベース プリンシパル ID。

grantor_principal_id

int

権限の許可者のデータベース プリンシパル ID。

char(4)

データベース権限の種類。 権限の種類の一覧については、次の表を参照してください。

permission_name

nvarchar(128)

権限名。

state

char(1)

権限の状態。

D = 拒否

R = 取り消し

G = 許可

W = 許可の許可オプション

state_desc

nvarchar(60)

権限の状態の説明。

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

権限の種類

権限名

適用されるセキュリティ保護可能なリソース

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

CREATE SEQUENCE

DATABASE

CRSV

CREATE SERVICE

DATABASE

CRTB

CREATE TABLE

DATABASE

CRTY

CREATE TYPE

DATABASE

CRVW

CREATE VIEW

DATABASE

CRXS

CREATE XML SCHEMA COLLECTION

DATABASE

DL

DELETE

DATABASE、OBJECT、SCHEMA

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

VWCT

VIEW CHANGE TRACKING

TABLE、SCHEMA

VWDS

VIEW DATABASE STATE

DATABASE

権限

すべてのユーザーは自分の権限を参照できます。 他のユーザーの権限を参照するには、VIEW DEFINITION、ALTER ANY USER、またはユーザーに対するすべての権限が必要です。 ユーザー定義ロールを参照するには、ALTER ANY ROLE、またはロール (public など) のメンバーシップが必要です。

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「メタデータ表示の構成」を参照してください。

使用例

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
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
JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
    ON pe.major_id = o.object_id
JOIN sys.schemas AS s
    ON o.schema_id = s.schema_id;

関連項目

参照

セキュリティ カタログ ビュー (Transact-SQL)

カタログ ビュー (Transact-SQL)

概念

セキュリティ保護可能なリソース

権限の階層 (データベース エンジン)