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