ORACLE用户角色,用于限制用户在不修改函数的情况下查看和执行函数

ORACLE用户角色,用于限制用户在不修改函数的情况下查看和执行函数,oracle,plsql,Oracle,Plsql,我很抱歉问了一个新手问题。我正在oracle中创建一个只读用户。我想限制他只查看和执行一个函数或过程。我不想让他修改那些函数或过程。请帮助我如何做到这一点 非常感谢您从创建用户的SYSDBA用户登录处获得以下授权: GRANT EXECUTE ANY PROCEDURE TO user; GRANT SELECT ANY TABLE TO user; 其中user=您刚刚创建的用户名 -- As sysdba: -- 1) create an user account create user

我很抱歉问了一个新手问题。我正在oracle中创建一个只读用户。我想限制他只查看和执行一个函数或过程。我不想让他修改那些函数或过程。请帮助我如何做到这一点


非常感谢您从创建用户的SYSDBA用户登录处获得以下授权:

GRANT EXECUTE ANY PROCEDURE TO user;
GRANT SELECT ANY TABLE TO user;
其中user=您刚刚创建的用户名

-- As sysdba:
-- 1) create an user account
create user <username> identified by <password>;
-- 2) allow user to log in
grant create session to <username>;
-- 3) allow user to execute a single procedure in other schema
grant execute on <other_schema.procedure_name> to <username>;
然后,为了确保用户只有读取权限,请从会话_privs检查他没有任何其他权限,特别是任何创建权限。要执行此操作,请运行:

select * from session_privs;

从您刚刚创建的用户那里。

我认为没有任何特权来查看任何这样的过程。您试图如何查看过程/功能?您使用的是哪种工具?事后考虑,可能还需要“选择任何表”授权。更新了应答器我尝试以这种方式创建用户,甚至执行了一个命令“将选择任何表授予RO_用户”,但是每当我执行“选择*自和用户=”RO_用户时,我什么也得不到,任何帮助/输入
-- As sysdba:
-- 1) create an user account
create user <username> identified by <password>;
-- 2) allow user to log in
grant create session to <username>;
-- 3) allow user to execute a single procedure in other schema
grant execute on <other_schema.procedure_name> to <username>;