如何使用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这方面做得实在有点欠缺
------其他解决方案--------------------