我如何获取一个Oracle用户可以访问的模式列表?

3
在Oracle中,我可以授予另一个用户对我的模式的权限,以便该用户可以访问我的模式(以及我的模式中的对象)。使用ADO.NET(无论是MS还是Oracle的提供程序),如何以编程方式获取特定用户可以访问的模式列表?

1
实际上,在Oracle中,我们只能在模式中对单个对象授予权限,而不能对整个模式进行授权。 - APC
这是否意味着dpbradley所提到的查询不会返回连接用户具有访问权限的模式? - alwayslearning
APC 只是在澄清 Oracle 授权架构 - 没有授予模式访问权限的概念。您可以将对象的权限授予模式或数据库角色,并且可以将角色授予模式或其他角色。因此,模式 A 可以拥有表 X、Y 和 Z,但仅向模式 B 授予表 X 的 SELECT 权限。作为模式 B,如果您运行下面的查询,您将在结果集中看到模式 A,但这并不意味着您可以查看模式 A 的所有表。 (实际上,字典视图的名称有些误导 - 它还包括非表对象的权限) - dpbradley
谢谢你。现在事情更清楚了。 - alwayslearning
1个回答

8

如果以感兴趣的用户身份连接:

select distinct table_schema from all_tab_privs;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接