1 select SYSTEM_USER 2 select USER_NAME(0),USER_NAME(1),USER_NAME(2),USER_NAME(3),USER_NAME(100) 3 4 --权限相关基本表 5 select * from sys.server_principals 6 select * from sys.database_principals 7 select * from syslogins 8 select * from sysusers 9 select * from syspermissions 10 11 select b.name as tName,c.name as objname, 12 CASE b.type 13 WHEN 'U' THEN 'Table' 14 WHEN 'P' THEN 'SP' 15 ELSE 'OTHER' 16 END AS TYPE, 17 CASE WHEN a.ACTION = 26 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'REFERENCES', 18 CASE WHEN a.ACTION = 193 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'SELECT', 19 CASE WHEN a.ACTION = 195 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'INSERT', 20 CASE WHEN a.ACTION = 197 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'UPDATE', 21 CASE WHEN a.ACTION = 196 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'DELETE', 22 CASE WHEN a.ACTION = 224 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'EXECUTE', 23 CASE a.PROTECTTYPE 24 WHEN 204 THEN 'GRANT_W_GRANT ' 25 WHEN 205 THEN 'GRANT' 26 WHEN 206 THEN 'DENY' 27 ELSE 'OTHER' --当有other出现的时候,需要将其他的PROTECTTYPE添加进去。 28 END AS PROTECTTYPE 29 from sysprotects a inner join sysobjects b on a.id = b.id 30 inner join sysusers c on a.uid = c.uid 31 order by tname 32 33 select 34 'GRANT '+ CASE a.ACTION 35 WHEN 26 THEN 'REFERENCES' 36 WHEN 193 THEN 'SELECT' 37 WHEN 195 THEN 'INSERT' 38 WHEN 196 THEN 'DELETE' 39 WHEN 197 THEN 'UPDATE' 40 WHEN 224 THEN 'EXECUTE' 41 ELSE 'OTHER' --当有other出现的时候,需要将其他的ACTION类型添加进去。 42 END +' ON '+ b.name +' TO '+ c.name 43 from sysprotects a(nolock) inner join sysobjects b(nolock) on a.id = b.id 44 inner join sysusers c (nolock)on a.uid = c.uid 45 WHERE A.UID > 0 46 47 select a.uid as uid,a.status as uStatus,a.name as uName, 48 b.uid as rId,b.status as rStatus,b.name as rName 49 from sysusers a left join sysmembers m on m.memberuid = a.uid 50 left join sysusers b on b.gid = m.groupuid 51 where a.issqluser =1 52 --a.islogin =1 53 --b.issqlrole 54 55 SELECT DP.name as[user_name],SP.name as [logion_name] 56 FROM sys.database_principals DP ,sys.server_principals SP 57 WHERE SP.sid = DP.sid 58 59 select DbRole = g.name, MemberName = u.name, MemberSID = u.sid 60 from sys.database_principals u, sys.database_principals g, sys.database_role_members m 61 where g.principal_id = m.role_principal_id 62 and u.principal_id = m.member_principal_id 63 order by 1, 2
相关文章: