동적 관리 뷰 및 함수에는 다음과 같은 두 유형이 있습니다.
1. 서버 범위 동적 관리 뷰 및 함수. 이 유형에는 서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
2. 데이터베이스 범위 동적 관리 뷰 및 함수. 이 유형에는 데이터베이스에 대한 VIEW DATABASE STATE 권한이 필요합니다.
동적 관리 뷰 또는 함수를 쿼리하려면 개체에 대한 SELECT 권한과 VIEW SERVER STATE 또는 VIEW DATABASE STATE 권한이 필요합니다. 이러한 사용 권한을 통해 동적 관리 뷰 및 함수에 대한 사용자 또는 로그인의 액세스를 선택적으로 제한할 수 있습니다. 이렇게 하기 위해서는 먼저 master에 사용자를 만든 다음 사용자가 액세스할 수 없도록 할 동적 관리 뷰 또는 함수에 대한 사용자의 SELECT 권한을 거부합니다. 그러면 사용자의 데이터베이스 컨텍스트에 관계없이 사용자가 이러한 동적 관리 뷰 또는 함수에서 선택할 수 없게 됩니다.
- DENY가 우선 적용되기 때문에 사용자에게 VIEW SERVER STATE 권한을 부여했지만 VIEW DATABASE STATE 권한을 거부한 경우 해당 사용자는 서버 수준 정보는 볼 수 있지만 데이터베이스 수준 정보는 볼 수 없습니다.
모든 동적 관리 뷰 및 함수는 sys 스키마에 있어야 하며 dm_* 명명 규칙을 따라야 합니다. 동적 관리 뷰 또는 함수를 사용할 경우 뷰 또는 함수 이름에 sys 스키마 접두사를 지정해야 합니다. 예를 들어 dm_os_wait_stats 동적 관리 뷰를 쿼리하려면 다음 쿼리를 실행합니다.
SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats
GO
Posted by 홍반장