如何从系统运行功能?

时间:2017-01-02 15:55:23

标签: sql oracle function plsql grant

所以我有一个名为doLogin的函数,它接收两个参数,并创建了一个名为user_login的用户。 我已授予user_login以下权限:

GRANT CREATE SESSION TO user_login;
GRANT EXECUTE ON DoLogin TO user_login;
GRANT SELECT ON Utilizadores TO user_login; --do Login gets information from this table

但是当使用user_login连接并尝试运行该函数时,我收到以下错误:

  

Erro:java.sql.SQLException:ORA-06550:第1行第13列:PLS-00201:必须声明标识符'DOLOGIN'ORA-06550:第1行第7列:PL / SQL:忽略语句

编辑:我希望只有system和user_login能够访问此功能

1 个答案:

答案 0 :(得分:2)

假设您在模式中定义了您的功能DoLogin(例如yourSchema),您需要在其他用户中使用它,例如user_login

您可以决定使用

调用该函数
yourSchema.DoLogin

或从yourSchema内创建公共同义词,然后在不添加架构名称的情况下调用该函数:

create public synonym DoLogin for DoLogin