我正在尝试提取需要select "DB Name", "Hostname", Grantee, Granted_role
的 Oracle 数据库中数据库角色的报告。为此,准备了三个选择:
select name from v$database;
select host_name from v$instance;
select distinct(grantee), granted_role from dba_role_privs order by 1;
问题是是否可以将这些组合在一起并生成一个报告表:
Server-Name;DB name;Role;Userid
有人可以给出任何提示吗?谢谢!
您可以使用连接来执行此操作,但标量子查询缓存意味着在选择列表中使用标量子查询可能会更快,因为它们被查询一次,然后值重用于所有行,例如:
SELECT DISTINCT (SELECT NAME
FROM v$database) db_name,
(SELECT host_name
FROM v$instance) host_name,
grantee,
granted_role
FROM dba_role_privs
ORDER BY 1;