다음을 통해 공유


sys.database_permissions(Transact-SQL)

적용 대상: Microsoft Fabric의 Microsoft Fabric SQL 데이터베이스에 있는 Microsoft Fabric Warehouse의 SQL Server Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) SQL 분석 엔드포인트

데이터베이스의 모든 권한 또는 열 예외 권한에 대한 행을 반환합니다. 열의 경우 해당 개체 수준 사용 권한과 다른 모든 권한에 대한 행이 있습니다. 열 사용 권한이 해당 개체 사용 권한과 같으면 열에 대한 행이 없고 적용된 사용 권한은 개체의 사용 권한입니다.

Important

열 수준 권한은 동일한 엔터티에 대한 개체 수준 권한을 재정의합니다.

열 이름 데이터 형식 설명
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

인증서

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 = Grant

W = Grant With Grant 옵션
state_desc nvarchar(60) 사용 권한 상태에 대한 설명:

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION

데이터베이스 권한

다음과 같은 유형의 사용 권한이 가능합니다.

권한 유형 권한 이름 보안 개체에 적용되는 항목
AADS ALTER ANY DATABASE EVENT SESSION DATABASE
AAMK ALTER ANY MASK DATABASE
AEDS ALTER ANY EXTERNAL DATA SOURCE DATABASE
AEFF ALTER ANY EXTERNAL FILE FORMAT DATABASE
AL 변경 애플리케이션 역할, 어셈블리, 비대칭 키, 인증서, 계약, 데이터베이스, 전체 텍스트 카탈로그, 메시지 유형, 개체, 원격 서비스 바인딩, 역할, 경로, 스키마, 서비스, 대칭 키, 사용자, XML 스키마 컬렉션
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 모든 사용자 변경 DATABASE
인증 AUTHENTICATE DATABASE
BADB BACKUP DATABASE DATABASE
BALO BACKUP LOG DATABASE
CL CONTROL 애플리케이션 역할, 어셈블리, 비대칭 키, 인증서, 계약, 데이터베이스, 전체 텍스트 카탈로그, 메시지 유형, 개체, 원격 서비스 바인딩, 역할, 경로, 스키마, 서비스, 대칭 키, 유형, 사용자, XML 스키마 컬렉션
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 절차 만들기 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 테이블 만들기 DATABASE
CRTY 유형 만들기 DATABASE
CRVW 보기 만들기 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 실행 ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION
IM IMPERSONATE USER
IN 삽입 DATABASE, OBJECT, SCHEMA
RC RECEIVE OBJECT
RF REFERENCES 어셈블리, 비대칭 키, 인증서, 계약, 데이터베이스, 전체 텍스트 카탈로그, 메시지 유형, 개체, 스키마, 대칭 키, 형식, XML 스키마 컬렉션
SL SELECT DATABASE, OBJECT, SCHEMA
SN SEND SERVICE
SPLN SHOWPLAN DATABASE
SUQN SUBSCRIBE QUERY NOTIFICATIONS DATABASE
TO TAKE OWNERSHIP 어셈블리, 비대칭 키, 인증서, 계약, 데이터베이스, FULLTEXT 카탈로그, 메시지 유형, 개체, 원격 서비스 바인딩, 역할, 경로, 스키마, 서비스, 대칭 키, 형식, XML 스키마 컬렉션
UP UPDATE DATABASE, OBJECT, SCHEMA
VW VIEW DEFINITION 애플리케이션 역할, 어셈블리, 비대칭 키, 인증서, 계약, 데이터베이스, 전체 텍스트 카탈로그, 메시지 유형, 개체, 원격 서비스 바인딩, 역할, 경로, 스키마, 서비스, 대칭 키, 유형, 사용자, XML 스키마 컬렉션
VWCK VIEW ANY COLUMN ENCRYPTION KEY DEFINITION DATABASE
VWCM VIEW ANY COLUMN MASTER KEY DEFINITION DATABASE
VWCT VIEW CHANGE TRACKING TABLE, SCHEMA
VWDS 데이터베이스 상태 보기 DATABASE

사용 권한

모든 사용자는 자신의 권한을 볼 수 있습니다. 다른 사용자에 대한 사용 권한을 보려면 VIEW DEFINITION, ALTER ANY USER 또는 사용자에 대한 모든 권한이 필요합니다. 사용자 정의 역할을 보려면 ALTER ANY ROLE 또는 역할(예: 공용)의 멤버 자격이 필요합니다.

사용자가 소유하고 있거나 사용 권한을 부여 받은 보안 개체에 대해서만 카탈로그 뷰의 메타데이터를 볼 수 있습니다. 자세한 내용은 Metadata Visibility Configuration을 참조하세요.

예제

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.objectssys.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. 특정 개체에 대한 사용 권한 나열

이전 예제를 사용하여 단일 데이터베이스 개체와 관련된 권한을 쿼리할 수 있습니다.

예를 들어 샘플 데이터베이스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

참고 항목

다음 단계