Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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 pl sql新用户获取过程不';不存在_Oracle_Plsql_Database Administration - Fatal编程技术网

Oracle pl sql新用户获取过程不';不存在

Oracle pl sql新用户获取过程不';不存在,oracle,plsql,database-administration,Oracle,Plsql,Database Administration,我有一个基于Oracle的应用程序,该应用程序有一个数据库,apache将modplsql设置为应用程序服务器,我对Oracle相当陌生,所以请原谅我,如果这不是一个非常聪明的问题,但这是一个我找不到答案的问题 问题是我需要向这个oracle应用程序添加几个新用户,但我不知道如何添加,我尝试了两种方法:使用控制台和oracle sql developer UI工具创建它们,在这两种情况下,我授予当前用户拥有的所有角色和特权,然而,当我用新凭据连接到我的应用程序时,我得到的过程不存在错误。我知道问

我有一个基于Oracle的应用程序,该应用程序有一个数据库,apache将modplsql设置为应用程序服务器,我对Oracle相当陌生,所以请原谅我,如果这不是一个非常聪明的问题,但这是一个我找不到答案的问题

问题是我需要向这个oracle应用程序添加几个新用户,但我不知道如何添加,我尝试了两种方法:使用控制台和oracle sql developer UI工具创建它们,在这两种情况下,我授予当前用户拥有的所有角色和特权,然而,当我用新凭据连接到我的应用程序时,我得到的过程不存在错误。我知道问题出在角色或权限上,但我不知道是什么问题

有经验的人能给我指引正确的方向吗

提前谢谢

代码:


要在oracle中创建新用户,可以使用以下语句: 创建由(传递单词)标识的用户(用户名) 用户上的帐户(锁定/解锁)Qouta(用户空间); Exmaple:

创建用户后,您最多会为其授予权限 创建会话、创建表、创建触发器……等等 Exmaple:

……等等

允许您连接到用户的最重要的特权是创建会话
必须将它提供给已创建的每个用户。

首先,在Oracle中创建用户时 最好是完全创建并为存储提供空间 例如:

然后对结构进行修改 ِ并且您正在创建新用户的用户必须具有完全权限,并且可以授予其他用户 如果您向他们授予如下示例所示的权限:

GRANT DBA,CONNECT,RESOURCE TO myuser;
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;

等等。

我知道已经有一段时间了,但我注意到有几个人在看这篇文章,所以我决定把问题所在发出来,希望它能帮助别人。在我们的例子中,这是架构的问题,因此需要一个触发器,比如:

create or replace TRIGGER my_user.swithtomyschema
AFTER LOGON ON my_user.SCHEMA 
BEGIN
  EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA=my_schema';
END;
我现在知道了,所以看起来很简单,但当时我对这个系统还不熟悉,我花了好几天的时间才发现它出了什么问题。我希望没有其他人处于同样的情况,但如果你是,我希望你会接受这个答案,它将为你指出正确的方向。祝你好运


感谢所有试图帮忙的人

导致错误的过程存储在哪里?如果是这种情况,那么您应该通过schema_name来引用它。procedure_name导致问题的是运行应用程序的主过程。如果过程不存在,那么它就不存在,或者用户对此过程没有权限。“将所有者的EXECUTE\u shema.proc\u名称授予用户;”应该会有所帮助。但是,如果数据库中有一些特殊的角色模型,最好向创建此模型的人说明问题。1)过程确实存在。2) 我们模式中的所有用户都被授予一个具有所有权限的角色,但是当我创建一个新用户并将该角色授予他们时,我仍然会得到一个“过程不存在”错误。我很确定我遗漏了什么,但不确定遗漏了什么。我希望有人会有一个答案,如果没有的话,我将不得不找到一种方法来联系创建这个系统的人。无论如何,谢谢你们的回答。非常感谢你们的回答!请看我上面的问题,我已经添加了用于创建这个新用户的代码。
grant Create session to Muwaffaq;
grant Create user to Muwaffaq;
grant Create table to Muwaffaq;
grant Create Trigger to Muwaffaq;
grant Alter User to Muwaffaq;
grant Create Function to Muwaffaq;
grant Create sequnce to Muwaffaq;
grant Create procedure to Muwaffaq;
Create user "Myuser" identified by pass2
quota 15M on users Account unlock;
GRANT DBA,CONNECT,RESOURCE TO myuser;
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;
create or replace TRIGGER my_user.swithtomyschema
AFTER LOGON ON my_user.SCHEMA 
BEGIN
  EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA=my_schema';
END;