반응형
1. 해당 데이터베이스에 등록 되어있는 로그인 계정 목록
SELECT name AS [Name] -- 로그인 계정 , type_desc AS [TypeDesc] -- 로그인 타입 , is_disabled AS [IsDisabled] -- 1이면 사용할수 없음 , create_date AS [CreateDate] -- 생성일 FROM sys.server_principals WHERE type IN('U', 'G', 'S', 'C', 'K') AND principal_id NOT BETWEEN 101 AND 255 AND name <> N'##MS_AgentSigningCertificate##' ORDER BY name ASC |
2. 해당 데이터베이스에 대한 서버 권한 목록
SELECT sp.name -- 계정 이름 , sp2.name -- 계정에 부여된 권한 FROM sys.server_role_members AS srm INNER JOIN sys.server_principals AS sp ON srm.member_principal_id = sp.principal_id INNER JOIN sys.server_principals AS sp2 ON srm.role_principal_id = sp2.principal_id |
3. 각 데이터베이스에 대한 로그인 계정 정보
EXEC sp_MSforeachdb 'SELECT ''?'' AS database_name -- 데이터베이스 이름 , dp.name -- 계정 이름 , dp2.name -- 계정 역활 , dp.type -- S/U/G/R : SQL 로그인/Windows 로그인/Windows 그룹/서버역활 , dp.type_desc -- 로그인 타입 , dp.default_schema_name -- 기본스키마 , dp.create_date -- 생성일 , dp.modify_date -- 수정일 FROM [?].sys.database_role_members AS drm RIGHT JOIN ( SELECT * FROM [?].sys.database_principals WHERE type IN (''S'', ''U'', ''G'') ) AS dp ON drm.member_principal_id = dp.principal_id LEFT JOIN [?].sys.database_principals AS dp2 ON drm.role_principal_id = dp2.principal_id' |
4. 데이터베이스 개체 권한
EXEC sp_MSforeachdb 'SELECT ''?'' AS database_name -- 데이터베이스 이름 , dp.name -- 계정 , dp.type -- S/U/G/R : SQL 로그인/Windows 로그인/Windows 그룹/서버역활 , dp.type_desc -- 로그인 타입 , dp.create_date -- 계정 생성일 , dp.modify_date -- 계정 수정일 , ds.type -- 데이터베이스 사용권한 유형 , ds.permission_name -- 데이터베이스 사용권한 이름 , ds.state -- 사용 상태(D/R/G : 거부/취소/허용) , ds.state_desc -- 상태 설명 , ao.name -- 개체 이름 , ao.type -- 개체 형식 , ao.type_desc -- 개체 형식에 대한 설명 , ao.create_date -- 개체 생성일 , ao.modify_date -- 개체 수정일 FROM ( SELECT * FROM [?].sys.database_principals WHERE type = ''U'' or type=''S'' ) AS dp INNER JOIN [?].sys.database_permissions AS ds ON dp.principal_id = ds.grantee_principal_id LEFT JOIN [?].sys.all_objects AS ao ON ds.major_id = ao.object_id' |
반응형