【发布时间】:2011-01-12 16:17:09
【问题描述】:
在 Oracle 中,我可以将我的架构的权限授予另一个用户,以便其他用户可以访问我的架构(进而访问我的架构中的对象)。
如何使用 ADO.NET(MS 或 Oracle 的提供者)以编程方式获取特定用户有权访问的模式列表?
【问题讨论】:
-
实际上,在 Oracle 中,我们只能授予架构中单个对象的权限,而不能授予整个架构
-
这是否意味着 dpbradley 下面提到的查询没有返回连接用户有权访问的架构?
-
APC 只是在阐明 Oracle 授权体系结构 - 没有授予对模式的访问权限的概念。您可以将对象权限授予架构或数据库角色,也可以将角色授予架构或其他角色。因此,架构 A 可能拥有表 X、Y 和 Z,但仅将表 X 上的 SELECT 授予架构 B。作为架构 B,如果您运行下面的查询,您将在结果集中看到架构 A,但这并不意味着您可以看到所有模式 A 的表。 (实际上字典视图的名称有些误导 - 它还包括对非表对象的权限)
-
谢谢。现在它让事情变得更清楚了。