首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么使用SQL语句查到数据库用户在哪个固定数据库角色中

2012-12-16 
如何使用SQL语句查到数据库用户在哪个固定数据库角色中!如何使用SQL语句查到数据库用户在哪个固定数据库角

如何使用SQL语句查到数据库用户在哪个固定数据库角色中!
如何使用SQL语句查到数据库用户在哪个固定数据库角色中!
我知道可以从管理器中看到,但我想看看从哪个SQL语句可以查到每个用户在哪个固定数据库角色中!

[最优解释]


database_name
exec sp_helpuser user_name
查看所有用户时省略用户名即可


[其他解释]


--用户对应角色
SELECT Member = Users.name, Role = Roles.Name
FROM sysusers Users, sysusers Roles, sysmembers Members
WHERE Roles.uid = Members.groupuid
AND Roles.issqlrole = 1
AND Users.uid = Members.memberuid

[其他解释]
角色 sp_helprolemember
权限 sp_helprotect
[其他解释]

SELECT * FROM sys.syslogins
SELECT * FROM sys.sysusers

[其他解释]
引用:
SQL code??1234567--用户对应角色SELECT Member = Users.name, Role = Roles.NameFROM sysusers Users, sysusers Roles, sysmembers MembersWHERE Roles.uid = Members.groupuidAND Roles.issqlrole = 1AND U……


非常感谢你的回答,但我想要所有用户的固定数据库角色,这条语句只能查不出来~
[其他解释]
引用:
引用:SQL code??1234567--用户对应角色SELECT Member = Users.name, Role = Roles.NameFROM sysusers Users, sysusers Roles, sysmembers MembersWHERE Roles.uid = Members.groupuidAND Rol……


? 所有用户的固定数据库角色。
try 这个

SELECT B.name AS roles,C.name AS users
FROM sys.database_role_members A
INNER JOIN sys.database_principals B ON A.role_principal_id = B.principal_id
INNER JOIN sys.database_principals C ON A.member_principal_id = c.principal_id

[其他解释]
在需要查看的数据库执行:
exec sp_helprolemember
[其他解释]
引用:
引用:引用:SQL code??1234567--用户对应角色SELECT Member = Users.name, Role = Roles.NameFROM sysusers Users, sysusers Roles, sysmembers MembersWHERE Roles.uid = Me……

还是查不出来
[其他解释]
引用:
在需要查看的数据库执行:
exec sp_helprolemember

我想要的看这样的结果
用户名  角色名  
sa      db_owner
test    db_ddladmin
[其他解释]
角色名 ,用户名。 这样都不符合要求啊 。。。
[其他解释]
引用:
角色名 ,用户名。 这样都不符合要求啊 。。。

我的最终目的是想一条语句查到所有用户的权限,可惜查了很多视图和存储过程都只能查到当前用户
总感觉SQL Server这方面做得实在有点欠缺

------其他解决方案--------------------


到底是要看角色 还是权限?
[其他解释]

引用:
到底是要看角色 还是权限?

角色和权限都要
[其他解释]
database_name
exec sp_helpuser user_name

use 
[其他解释]
引用:
database_name
exec sp_helpuser user_name
查看所有用户时省略用户名即可

谢谢你的帮助,终于找到了
同时也谢谢楼上的2位的热心帮助!

热点排行