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
权限相关基本查询

相关文章: