关于 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'
此语句还是无法将 安全对像 罗列出来。有没有哪个高手遇到过这样的问题。
------解决方案----------------------去掉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'那就只查系统对象了,忽略了其它对象。楼主是不是受到启发就搞定了啊,现在还有啥疑问吗?