Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在创建只显示过程标题的Oracle用户_Oracle_Privileges - Fatal编程技术网

正在创建只显示过程标题的Oracle用户

正在创建只显示过程标题的Oracle用户,oracle,privileges,Oracle,Privileges,我需要做的是创建oracle用户,它只会看到过程和函数的标题,而不会看到正文 你知道我怎样才能做到这一点,应该设置什么样的特权吗?我不确定这是否可行。作为一种变通方法,您可以在用户有权访问的模式中创建“facade”过程,然后将工作委托给用户无权访问的另一个模式中的过程。但这是对数据库设计的一个相当侵入性的修改。使用DBA帐户创建一个视图并在此视图上授予SELECT权限应该可以: CREATE VIEW dba_source_pkg_headers AS SELECT * FROM dba_

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


你知道我怎样才能做到这一点,应该设置什么样的特权吗?

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

使用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;

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


如果您使用常规函数和过程,您可以授予select on
dba_参数
,这将允许您访问所有函数/过程参数。

用户是否能够执行这些过程和函数?实际上,我正在为我们的提供商搜索此解决方案。我们可以访问这个数据库,我们可以通过DBLINK调用过程,但是我们看不到任何包,我们想出了一个主意,我们的提供商可以为我们创建另一个用户,该用户只能看到标题。