【问题标题】:How do I obtain a list of schemas that an Oracle user has access to如何获取 Oracle 用户有权访问的模式列表
【发布时间】: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 的表。 (实际上字典视图的名称有些误导 - 它还包括对非表对象的权限)
  • 谢谢。现在它让事情变得更清楚了。

标签: oracle ado.net schema


【解决方案1】:

如果作为感兴趣的用户连接:

select distinct table_schema from all_tab_privs;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2022-09-23
    • 2023-03-03
    相关资源
    最近更新 更多