【发布时间】:2014-11-07 12:30:48
【问题描述】:
我有一个基于 Oracle 的应用程序,它有一个数据库和 apache,并将 modplsql 设置为应用程序服务器,我对 Oracle 相当陌生,所以如果这不是一个非常聪明的问题,请原谅我,但这是一个我找不到答案的问题.
问题是我需要向这个 oracle 应用程序添加几个新用户,但不知道怎么做,我尝试了两种方法:使用控制台创建它们和使用 oracle sql 开发人员 UI 工具,在这两种情况下我授予当前用户拥有的所有角色和权限,但是当我使用新凭据连接到我的应用程序时,我收到 PROCEDURE DOESN'T EXIST 错误。我知道问题出在角色或特权上,但不知道是什么。
有更多经验的人可以指导我正确的方向吗?
提前致谢!
代码:
1) create user myuser identified by pass2;
2) ALTER USER "myuser" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK ;
3) GRANT "DBA","CONNECT","our_USER","RESOURCE" TO "myuser";
4) GRANT create database link TO "myuser";
GRANT create materialized view TO "myuser";
GRANT create procedure TO "myuser";
GRANT create public synonym TO "myuser";
GRANT create role TO "myuser";
GRANT create sequence TO "myuser";
GRANT create synonym TO "myuser";
GRANT create table TO "myuser";
GRANT create trigger TO "myuser";
GRANT create type TO "myuser";
GRANT create view TO "myuser";
GRANT create tablespace TO "myuser";
GRANT create session TO "myuser";
【问题讨论】:
-
导致错误的程序存储在哪里?如果是这种情况,那么您应该通过 schema_name.procedure_name 引用它
-
这是导致问题的应用程序运行的主要过程。
-
如果过程不存在,则它不存在,或者用户没有此过程的特权。 “将 owner_shema.proc_name 授予用户执行;”应该有帮助。但是,如果您的数据库中有一些特殊的角色模型,最好向创建此模型的人解决问题。
-
1) 程序确实存在。 2)我们架构中的所有用户都被授予一个具有所有权限的角色,但是当我创建一个新用户并将该角色授予他们时,我仍然得到过程不存在错误。我很确定我错过了一些东西,但是不知道是什么。希望那里有人能给出答案,如果没有,我将不得不找到一种方法来联系创建这个系统的人。无论如何,谢谢你们的回答。
标签: oracle plsql database-administration