sys.database_permissions(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)예Azure SQL 데이터베이스예Azure SQL 데이터 웨어하우스예병렬 데이터 웨어하우스

데이터베이스에 있는 각 사용 권한이나 열 예외 권한에 대해 행을 반환합니다. 열에는 해당 개체 수준 사용 권한과는 다른 모든 사용 권한에 대한 행이 있습니다. 열 사용 권한이 해당 개체 사용 권한과 동일한 경우 이에 해당하는 행은 없으며 사용되는 실제 사용 권한은 개체 사용 권한입니다.

System_CAPS_ICON_important.jpg 중요


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

열 이름데이터 형식Description
클래스tinyint사용 권한이 있는 클래스를 식별합니다.

0 = 데이터베이스
1 = 개체 또는 열
3 = 스키마
4 = 데이터베이스 보안 주체
5 = 어셈블리- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
6 = 형식
10 = XML 스키마 컬렉션-
                      적용 대상: SQL Server 2008 부터 SQL Server 2016까지
15 = 메시지 유형- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
16 = 서비스 계약- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
17 = 서비스- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
18 = 원격 서비스 바인딩- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
19 = 경로- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
23 = 전체 텍스트 카탈로그- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
24 = 대칭 키- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
25 = 인증서- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
26 = 비대칭 키- 적용할: SQL Server 2008 통해 SQL Server 2016합니다.
class_descnvarchar (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
major_idint사용 권한이 존재하는 항목의 ID입니다. 이는 클래스에 따라 해석됩니다. 대부분의 경우 이 ID는 클래스가 나타내는 대상에 적용되는 ID입니다. 비표준 항목에 대한 해석 방식은 다음과 같습니다.

0 = 항상 0

1 = 개체 ID

음수 ID는 시스템 개체에 할당됩니다.
minor_idint사용 권한이 존재하는 항목의 보조 ID입니다. 이는 클래스에 따라 해석됩니다. 대부분의 경우 이 ID는&0;이지만 다른 값인 경우 다음과 같습니다.

1 = 열인 경우 열 ID입니다. 그렇지 않고 개체인 경우 0입니다.
grantee_principal_idint사용 권한이 부여된 데이터베이스 보안 주체 ID입니다.
grantor_principal_idint사용 권한 부여자의 데이터베이스 보안 주체 ID입니다.
typechar (4)데이터베이스 사용 권한의 유형입니다. 사용 권한 유형 목록은 다음 표를 참조하세요.
permission_namenvarchar (128)사용 권한 이름입니다.
상태char (1)사용 권한 상태입니다.

D = 거부

R = 취소

G = 허용

W = Grant 옵션을 사용하여 허용
state_descnvarchar (60)사용 권한 상태에 대한 설명입니다.

DENY

REVOKE

GRANT

GRANT_WITH_GRANT_OPTION
사용 권한 유형사용 권한 이름보안 개체에 적용되는 항목
ALALTERAPPLICATION 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
ALAKALTER ANY ASYMMETRIC KEYDATABASE
ALARALTER ANY APPLICATION ROLEDATABASE
ALASALTER ANY ASSEMBLYDATABASE
ALCFALTER ANY CERTIFICATEDATABASE
ALDSALTER ANY DATASPACEDATABASE
ALEDALTER ANY DATABASE EVENT NOTIFICATIONDATABASE
ALFTALTER ANY FULLTEXT CATALOGDATABASE
ALMTALTER ANY MESSAGE TYPEDATABASE
ALRLALTER ANY ROLEDATABASE
ALRTALTER ANY ROUTEDATABASE
ALSBALTER ANY REMOTE SERVICE BINDINGDATABASE
ALSCALTER ANY CONTRACTDATABASE
ALSKALTER ANY SYMMETRIC KEYDATABASE
ALSMALTER ANY SCHEMADATABASE
ALSVALTER ANY SERVICEDATABASE
ALTGALTER ANY DATABASE DDL TRIGGERDATABASE
ALUSALTER ANY USERDATABASE
AUTHAUTHENTICATEDATABASE
BADBBACKUP DATABASEDATABASE
BALOBACKUP LOGDATABASE
CLCONTROLAPPLICATION 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
COCONNECTDATABASE
CORPCONNECT REPLICATIONDATABASE
CPCHECKPOINTDATABASE
CRAGCREATE AGGREGATEDATABASE
CRAKCREATE ASYMMETRIC KEYDATABASE
CRASCREATE ASSEMBLYDATABASE
CRCFCREATE CERTIFICATEDATABASE
CRDBCREATE DATABASEDATABASE
CRDFCREATE DEFAULTDATABASE
CREDCREATE DATABASE DDL EVENT NOTIFICATIONDATABASE
CRFNCREATE FUNCTIONDATABASE
CRFTCREATE FULLTEXT CATALOGDATABASE
CRMTCREATE MESSAGE TYPEDATABASE
CRPRCREATE PROCEDUREDATABASE
CRQUCREATE QUEUEDATABASE
CRRLCREATE ROLEDATABASE
CRRTCREATE ROUTEDATABASE
CRRUCREATE RULEDATABASE
CRSBCREATE REMOTE SERVICE BINDINGDATABASE
CRSCCREATE CONTRACTDATABASE
CRSKCREATE SYMMETRIC KEYDATABASE
CRSMCREATE SCHEMADATABASE
CRSNCREATE SYNONYMDATABASE
CRSO적용 대상: SQL Server 2012 부터 SQL Server 2016까지

CREATE SEQUENCE
DATABASE
CRSVCREATE SERVICEDATABASE
CRTBCREATE TABLEDATABASE
CRTYCREATE TYPEDATABASE
CRVWCREATE VIEWDATABASE
CRXS적용 대상: SQL Server 2008 부터 SQL Server 2016까지

CREATE XML SCHEMA COLLECTION
DATABASE
DLDELETEDATABASE, OBJECT, SCHEMA
EXCREATE 문을 실행하기 전에ASSEMBLY, DATABASE, OBJECT, SCHEMA, TYPE, XML SCHEMA COLLECTION
IMIMPERSONATEUSER
ININSERTDATABASE, OBJECT, SCHEMA
RCRECEIVEOBJECT
RFREFERENCESASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, SCHEMA, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
SLSELECTDATABASE, OBJECT, SCHEMA
SNSENDSERVICE
SPLNSHOWPLANDATABASE
SUQNSUBSCRIBE QUERY NOTIFICATIONSDATABASE
TOTAKE OWNERSHIPASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, XML SCHEMA COLLECTION
UPUPDATEDATABASE, OBJECT, SCHEMA
VWVIEW DEFINITIONAPPLICATION 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
VWCTVIEW CHANGE TRACKINGTABLE, SCHEMA
VWDSVIEW DATABASE STATEDATABASE

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

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

A: 데이터베이스 보안 주체의 모든 사용 권한 나열

다음 쿼리는 데이터베이스 보안 주체에 대해 명시적으로 부여되거나 거부된 사용 권한을 나열합니다.

System_CAPS_ICON_important.jpg 중요


고정 데이터베이스 역할의 사용 권한은 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;  

C: 데이터베이스 보안 주체의 모든 사용 권한을 나열 하는

다음 쿼리는 데이터베이스 보안 주체에 대해 명시적으로 부여되거나 거부된 사용 권한을 나열합니다.

System_CAPS_ICON_important.jpg 중요


고정 데이터베이스 역할의 사용 권한은 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;  

D: 데이터베이스 내의 스키마 개체에 대 한 권한을 나열 하는

다음 쿼리는 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)

커뮤니티 추가 항목

추가
표시: