sys.fn_my_permissions(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System(PDW) SQL 분석 엔드포인트
보안 개체에 대해 보안 주체에 부여된 유효 사용 권한 목록을 반환합니다. 관련 함수가 HAS_PERMS_BY_NAME.
구문
fn_my_permissions ( securable , 'securable_class' )
인수
securable
보안 개체의 이름입니다. 보안 개체가 서버 또는 데이터베이스인 경우 이 값을 으로 NULL
설정해야 합니다. securable은 sysname 형식의 스칼라 식입니다. 보안 개체 는 다중 파트 이름일 수 있습니다.
'securable_class'
사용 권한이 나열되는 보안 개체 클래스의 이름입니다. securable_class sysname이며 기본값은 .입니다NULL
.
이 인수는 다음 값 APPLICATION ROLE
중 하나여야 합니다. , , ASSEMBLY
, ASYMMETRIC KEY
, CONTRACT
CERTIFICATE
, DATABASE
FULLTEXT CATALOG
ENDPOINT
, LOGIN
MESSAGE TYPE
, OBJECT
, REMOTE SERVICE BINDING
ROLE
, SCHEMA
ROUTE
, SERVER
, SERVICE
SYMMETRIC KEY
, TYPE
, USER
, . XML SCHEMA COLLECTION
기본값은 NULL
.입니다 SERVER
.
반환된 열
다음 표에서는 반환되는 fn_my_permissions
열을 나열합니다. 반환되는 각 행은 해당 보안 개체에 대해 현재 보안 컨텍스트가 가지는 사용 권한을 설명합니다. 쿼리가 실패하면 반환 NULL
합니다.
열 이름 | Type | 설명 |
---|---|---|
entity_name |
sysname | 나열된 권한이 효과적으로 부여되는 보안 개체의 이름입니다. |
subentity_name |
sysname | 보안 개체에 열이 있으면 열 이름이고, 그렇지 않으면 NULL 열 이름입니다. |
permission_name |
nvarchar | 사용 권한의 이름입니다. |
설명
이 테이블 반환 함수는 지정된 보안 개체에 대해 호출 주체가 보유한 유효 사용 권한 목록을 반환합니다. 유효한 권한은 다음 옵션 중 하나입니다.
- 보안 주체에게 직접 부여되고 거부되지 않은 사용 권한
- 보안 주체가 소유하는 더 높은 수준의 사용 권한에 포함되고 거부되지 않은 사용 권한
- 보안 주체가 멤버로 속한 역할이나 그룹에 부여되고 거부되지 않은 사용 권한
- 보안 주체가 멤버로 속한 역할이나 그룹이 소유하고 거부되지 않은 사용 권한
사용 권한은 항상 호출자의 보안 컨텍스트에서 평가됩니다. 다른 보안 주체에 유효한 권한이 있는지 확인하려면 호출자에게 해당 보안 주체에 대한 권한이 있어야 합니다 IMPERSONATE
.
스키마 수준 엔터티의 경우 null이 아닌 1부, 2부 또는 3부로 구성된 이름이 허용됩니다. 데이터베이스 수준 엔터티의 경우 현재 데이터베이스를 의미하는 null 값을 사용하여 한 부분으로 된 이름이 허용됩니다. 서버 자체의 경우 null 값(현재 서버 의미)이 필요합니다. fn_my_permissions
연결된 서버에 대한 사용 권한을 확인할 수 없습니다.
다음 쿼리는 기본 제공 보안 개체 클래스 목록을 반환합니다.
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
보안 개체 또는 securable_class 값으로 제공된 경우 DEFAULT
값은 .로 NULL
해석됩니다.
이 함수는 fn_my_permissions
Azure Synapse Analytics 전용 SQL 풀에서 지원되지 않습니다.
사용 권한
public 역할의 멤버 자격이 필요합니다.
예제
A. 서버에 대한 유효 권한 나열
다음 예제에서는 서버에서 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. 데이터베이스에 대한 유효 권한 나열
다음 예제에서는 데이터베이스에 대한 호출자의 AdventureWorks2022
유효 사용 권한 목록을 반환합니다.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. 보기에 대한 유효 사용 권한 나열
다음 예에서는 AdventureWorks2022
데이터베이스의 vIndividualCustomer
스키마에 있는 Sales
뷰에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. 다른 사용자의 유효 권한 나열
다음 예제에서는 데이터베이스 스키마 AdventureWorks2022
의 테이블에 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
E. 인증서에 대한 유효 권한 나열
다음 예제에서는 현재 데이터베이스에 명명된 Shipping47
인증서에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. XML 스키마 컬렉션에 대한 유효 권한 나열
다음 예제에서는 데이터베이스에 명명 ProductDescriptionSchemaCollection
AdventureWorks2022
된 XML 스키마 컬렉션에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. 데이터베이스 사용자에 대한 유효 권한 나열
다음 예에서는 현재 데이터베이스에서 이름이 MalikAr
인 사용자에 대한 호출자의 유효 사용 권한 목록을 반환합니다.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. 다른 로그인의 유효 권한 나열
다음 예제에서는 데이터베이스 스키마의 테이블에 HumanResources
대한 Employee
SQL Server 로그인 WanidaBenshoof
의 AdventureWorks2022
유효 사용 권한 목록을 반환합니다. 호출자에게 SQL Server 로그인WanidaBenshoof
에 대한 권한이 필요합니다IMPERSONATE
.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO