日期:2014-05-17  浏览次数:20627 次

关于 sql server 2012 用户授权查询的
我想对数据库中的一个库 通过SQL SERVER语句把所有登陆用户的授权情况 全部查出来。以下是我写得SQL 语句。

select s.name loginname,u.name userame,r.name rolename,u.default_schema_name 
from sys.database_principals u join sys.server_principals s on u.sid=s.sid join sys.database_role_members m on u.principal_id=m.member_principal_id join sys.database_principals r on m.role_principal_id=r.principal_id 
where u.type= 's'  


此语句还是无法将 安全对像  罗列出来。有没有哪个高手遇到过这样的问题。
sql?server?2012 数据库 sql?server

------解决方案--------------------
--去掉where条件查询
select s.name loginname,u.name userame,r.name rolename,u.default_schema_name ,u.type
from sys.database_principals u join sys.server_principals s on u.sid=s.sid 
join sys.database_role_members m on u.principal_id=m.member_principal_id 
join sys.database_principals r on m.role_principal_id=r.principal_id 

-- where u.type= 's'  

--这是我本机查询结果
/*
loginname userame rolename default_schema_name type
DEVELOP01\Administrator dbo db_owner dbo U
*/

------解决方案--------------------
嗯,没研究过,谢谢楼主
------解决方案--------------------
楼主加上u.type='s'那就只查系统对象了,忽略了其它对象。楼主是不是受到启发就搞定了啊,现在还有啥疑问吗?