fn_my_permissions(Transact-SQL)
업데이트: 2006년 12월 12일
보안 개체에 대해 보안 주체에 부여된 유효 사용 권한 목록을 반환합니다.
구문
fn_my_permissions ( securable , 'securable_class')
인수
- securable
보안 개체의 이름입니다. 보안 개체가 서버 또는 데이터베이스인 경우 이 값은 NULL이어야 합니다. securable은 sysname 형식의 스칼라 식입니다. securable은 다중 부분 이름일 수 있습니다.
'securable_class'
권한을 나열할 보안 개체의 클래스 이름입니다. securable_class는 sysname이며 securable_class는 APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, ENDPOINT, FULLTEXT CATALOG, LOGIN, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVER, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION 중 하나여야 합니다.[!참고] 대/소문자를 구분하는 데이터 정렬을 사용하는 경우 보안 개체 클래스를 모두 소문자로 입력해야 합니다.
주의
이 테이블 값 함수는 지정된 보안 개체에 대해 해당 보안 주체가 가진 유효 사용 권한의 목록을 반환합니다. 유효 사용 권한은 다음 중 하나입니다.
- 보안 주체에게 직접 부여되고 거부되지 않은 사용 권한
- 보안 주체가 소유하는 더 높은 수준의 사용 권한에 포함되고 거부되지 않은 사용 권한
- 보안 주체가 멤버로 속한 역할이나 그룹에 부여되고 거부되지 않은 사용 권한
- 보안 주체가 멤버로 속한 역할이나 그룹이 소유하고 거부되지 않은 사용 권한
사용 권한은 항상 호출자의 보안 컨텍스트에서 평가됩니다. 다른 보안 주체에게 유효 사용 권한이 있는지 여부를 확인하려면 호출자에게 해당 보안 주체에 대한 IMPERSONATE 권한이 있어야 합니다.
스키마 수준 엔터티의 경우 한 부분, 두 부분 또는 세 부분으로 된 Null이 아닌 이름을 사용할 수 있습니다. 데이터베이스 수준 엔터티의 경우 한 부분으로 된 이름을 사용할 수 있으며 Null 값은 "현재 데이터베이스"를 나타냅니다. 서버 자체인 경우 "현재 서버"를 뜻하는 Null 값이 필요합니다. fn_my_permissions로 연결된 서버의 사용 권한은 확인할 수 없습니다.
다음 쿼리는 기본 제공 보안 개체 클래스의 목록을 반환합니다.
SELECT DISTINCT class_desc FROM fn_builtin_permissions(default)
ORDER BY class_desc;
GO
securable 또는 securable_class의 값이 DEFAULT인 경우 이 값은 NULL로 해석됩니다.
반환되는 열
다음 표에서는 fn_my_permissions가 반환하는 열을 나열합니다. 반환되는 각 행은 해당 보안 개체에 대해 현재 보안 컨텍스트가 가지는 사용 권한을 설명합니다. 쿼리가 실패하는 경우 NULL을 반환합니다.
열 이름 | 유형 | 설명 |
---|---|---|
entity_name |
sysname |
나열된 사용 권한이 유효하게 부여되는 보안 개체의 이름입니다. |
subentity_name |
sysname |
보안 개체가 열인 경우 열 이름이며 그렇지 않은 경우에는 NULL입니다. |
permission_name |
nvarchar |
사용 권한의 이름입니다. |
예
1. 서버에 대한 유효 사용 권한 나열
다음 예에서는 서버에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
2. 데이터베이스에 대한 유효 사용 권한 나열
다음 예에서는 AdventureWorks
데이터베이스에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
USE AdventureWorks;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
3. 뷰에 대한 유효 사용 권한 나열
다음 예에서는 AdventureWorks
데이터베이스의 Sales
스키마에 있는 vIndividualCustomer
뷰에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
USE AdventureWorks;
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name ;
GO
4. 다른 사용자의 유효 사용 권한 나열
다음 예에서는 AdventureWorks
데이터베이스의 HumanResources
스키마에 있는 Employee
테이블에 대한 데이터베이스 사용자 Wanida
의 유효 사용 권한 목록을 반환합니다. 호출자는 사용자 Wanida
에 대한 IMPERSONATE 사용 권한이 필요합니다.
EXECUTE AS USER = 'Wanida';
SELECT * FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
5. 인증서에 대한 유효 사용 권한 나열
다음 예에서는 현재 데이터베이스에서 이름이 Shipping47
인 인증서에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
6. XML 스키마 컬렉션에 대한 유효 사용 권한 나열
다음 예에서는 AdventureWorks
데이터베이스에서 이름이 ProductDescriptionSchemaCollection
인 XML 스키마 컬렉션에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
USE AdventureWorks;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION');
GO
7. 데이터베이스 사용자에 대한 유효 사용 권한 나열
다음 예에서는 현재 데이터베이스에서 이름이 MalikAr
인 사용자에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
8. 다른 로그인의 유효 사용 권한 나열
다음 예에서는 AdventureWorks
데이터베이스의 HumanResources
스키마에 있는 Employee
테이블에 대한 SQL Server 로그인 WanidaBenshoof
의 유효 사용 권한 목록을 반환합니다. 호출자는 SQL Server 로그인 WanidaBenshoof
에 대한 IMPERSONATE 사용 권한이 필요합니다.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
참고 항목
참조
보안 함수(Transact-SQL)
sys.fn_builtin_permissions(Transact-SQL)
보안 카탈로그 뷰(Transact-SQL)
EXECUTE AS(Transact-SQL)
관련 자료
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 12월 12일 |
|