【问题标题】:Creating Oracle User which will see only procedures headers创建将只看到程序标题的 Oracle 用户
【发布时间】:2011-08-29 11:36:42
【问题描述】:

我需要做的是创建 oracle 用户,它只会看到过程和函数的标题,而没有正文。

知道如何实现这一点,应该设置什么样的权限?

【问题讨论】:

  • 用户应该能够执行这些程序和功能吗?

标签: oracle privileges


【解决方案1】:

使用 DBA 帐户创建视图并在此视图上授予 SELECT 应该可以工作:

CREATE VIEW dba_source_pkg_headers AS
SELECT *
  FROM dba_source
 WHERE type = 'PACKAGE';

GRANT select ON dba_source_pkg_headers TO your_user;

更新:这不适用于未打包的函数和过程。我不认为你可以用常规的函数/过程来分离标题和正文。

如果您使用常规函数和过程,您可以在dba_arguments 上授予选择权限,这样您就可以访问所有函数/过程参数。

【讨论】:

    【解决方案2】:

    我不确定这是否可能。作为一种解决方法,您可以在您的用户有权访问的模式中创建“外观”过程,然后将工作委派给您的用户无权访问的另一个模式中的过程。但这对您的数据库设计来说是一个相当侵入性的修改。

    【讨论】:

    • 实际上我正在为我们的供应商寻找这个解决方案。我们可以访问这个数据库,我们可以通过 DBLINK 调用过程,但是我们看不到任何包,我们想出了一个想法,我们的提供者可以为我们创建另一个只能看到标题的用户。
    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    相关资源
    最近更新 更多