SQL 如何通过SQL语句获得某个用户名下绑定的数据库的名称和其拥有的角色?(第三问) 10C

SQL server如何通过SQL语句获得某个用户名下绑定的数据库的名称和其拥有的角色
如图所示的属性,
图片说明

3个回答

查询当前实例:
select * from v$instance;
查询当前实例下所有用户
select * from sys.all_users;

方法一、SQL Server中查询用户的对象权限和角色的方法

-- 查询用户的object权限
exec sp_helprotect NULL, 'UserName'
-- 查询用户拥有的role
exec sp_helpuser 'UserName'
-- 查询哪些用户拥有指定的系统role
exec sp_helpsrvrolemember 'sysadmin'
-- 可查询嵌套role
WITH tree_roles as
(
SELECT role_principal_id, member_principal_id
FROM sys.database_role_members
WHERE member_principal_id = USER_ID('UserName')
UNION ALL
SELECT c.role_principal_id,c.member_principal_id
FROM sys.database_role_members as c
inner join tree_roles
on tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) RoleName
FROM tree_roles

-- 其他权限相关基本表
select * from sysusers
select * from syspermissions

方法二、
https://www.cnblogs.com/bobi-PHP-blog/p/7676764.html
看下这个连接 里面有具体的从新建用户到赋权限及收回权限的整体sql语句、希望可以帮到你的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!