8
스크립트의 특정 역할에 추가 된 모든 보안 기능을 어떻게 표시 할 수 있습니까?SQL Server 데이터베이스의 역할에 대한 모든 보안 개체보기?
스크립트의 특정 역할에 추가 된 모든 보안 기능을 어떻게 표시 할 수 있습니까?SQL Server 데이터베이스의 역할에 대한 모든 보안 개체보기?
SELECT
OBJECT_NAME(major_id), USER_NAME(grantee_principal_id), permission_name
FROM
sys.database_permissions p
WHERE
p.class = 1 AND
OBJECTPROPERTY(major_id, 'IsMSSHipped') = 0
ORDER BY
OBJECT_NAME(major_id), USER_NAME(grantee_principal_id), permission_name
여기에는 데이터베이스 리팩토링, 업데이트 또는 백업을 수행하는 데 사용되는 또 다른 기능이 있습니다. 또한 열 수준 권한을 지원합니다. 이 명령문은 GRANT 문을 생성합니다. 그러나 적응하기가 상당히 쉽습니다.
SELECT 'GRANT ' + database_permissions.permission_name + ' ON ' +
CASE database_permissions.class_desc
WHEN 'SCHEMA' THEN schema_name(major_id)
WHEN 'OBJECT_OR_COLUMN' THEN
CASE WHEN minor_id = 0 THEN object_name(major_id) COLLATE Latin1_General_CI_AS_KS_WS
ELSE (SELECT object_name(object_id) + ' ('+ name + ')'
FROM sys.columns
WHERE object_id = database_permissions.major_id
AND column_id = database_permissions.minor_id) end
ELSE 'other'
END +
' TO ' + database_principals.name COLLATE Latin1_General_CI_AS_KS_WS
FROM sys.database_permissions
JOIN sys.database_principals
ON database_permissions.grantee_principal_id = database_principals.principal_id
LEFT JOIN sys.objects -- consider schemas
ON objects.object_id = database_permissions.major_id
WHERE database_permissions.major_id > 0
AND permission_name in ('SELECT','INSERT','UPDATE','DELETE')
이 코드의 SQL 2000 버전이 있습니까? –
개체 유형을 나타내는 열을 추가하려면이 필터를 사용할 수 있습니까? 즉 테이블, 뷰, 저장 프로 시저 등? – Adam