SQL SERVER 查看用戶權限

--用戶與角色關係
select a.uid as uid,a.status as uStatus,a.name as uName,
  b.uid as rId,b.status as rStatus,b.name as rName
from sysusers a left join sysmembers m on m.memberuid = a.uid
    left join sysusers b on b.gid = m.groupuid
where a.issqluser =1
 --a.islogin =1
 --b.issqlrole

 

--用戶或角色在數據庫中的授權信息

select b.id,b.name as tName,b.type,a.uid,c.name as uName,a.action,a.protecttype,a.columns
from sysprotects a inner join sysobjects b on a.id = b.id
 inner join sysusers c on a.uid = c.uid

WHERE A.UID > 0

或則

select OBJECT_NAME(A.id) as tName,a.uid,c.name as uName,a.action,a.protecttype,a.columns
from sysprotects a  inner join sysusers c on a.uid = c.uid
WHERE A.UID > 0

或則

select b.name as tName,c.name as objname,
CASE b.type
 WHEN 'U' THEN 'Table'
 WHEN 'P' THEN 'SP'
 ELSE 'OTHER'
 END AS TYPE,
CASE WHEN  a.ACTION = 26 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'REFERENCES',
CASE WHEN  a.ACTION = 193 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'SELECT',
CASE WHEN  a.ACTION = 195 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'INSERT',
CASE WHEN  a.ACTION = 197 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'UPDATE',
CASE WHEN  a.ACTION = 196 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'DELETE',
CASE WHEN  a.ACTION = 224 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'EXECUTE',
CASE a.PROTECTTYPE
 WHEN 204 THEN 'GRANT_W_GRANT '
 WHEN 205 THEN 'GRANT'
 WHEN 206 THEN 'DENY'
 ELSE 'OTHER'  --當有other出現的時候,需要將其他的PROTECTTYPE添加進去。
 END AS PROTECTTYPE
from sysprotects a inner join sysobjects b on a.id = b.id
 inner join sysusers c on a.uid = c.uid
WHERE c.name in ('M18Console')
order by tname

 

--組織授權SQL

select
  'GRANT '+ CASE a.ACTION
     WHEN 26 THEN 'REFERENCES'
     WHEN 193 THEN 'SELECT'
     WHEN 195 THEN 'INSERT'
     WHEN 196 THEN 'DELETE'
     WHEN 197 THEN 'UPDATE'
     WHEN 224 THEN 'EXECUTE'
    ELSE 'OTHER' --當有other出現的時候,需要將其他的ACTION類型添加進去。
END +' ON '+ b.name +' TO '+ c.name
from sysprotects a(nolock) inner join sysobjects b(nolock) on a.id = b.id
  inner join sysusers  c (nolock)on a.uid = c.uid
WHERE A.UID > 0  and c.name = 'm18style'

 

 

發佈了25 篇原創文章 · 獲贊 6 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章