ORA-01031创建视图时权限不足?

时间:2013-04-20 21:36:26

标签: sql oracle view oracle11g

当我尝试创建包含不同表的视图时,我收到以下错误: 第1行出错: ORA-01031权限不足。

有谁能告诉我可能是什么问题。我试着按照这里提到的另一个stackoverflow帖子,但它与之相关 不同的模式。

ORA-01031: insufficient privileges when selecting view

请告诉我,因为我是新来的。

我的查询如下:

原始问题:创建一个视图以选择员工ID,员工姓名,雇用日期和部门编号。

我的解决方案:

CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;

6 个答案:

答案 0 :(得分:4)

然后,您可能没有权限在数据库架构中执行CREATE VIEW命令...登录到SYSDBA帐户并发出命令

GRANT CREATE VIEW TO <dbusername>;

此处<dbusername>应替换为您要授予CREATE VIEW命令访问权限的用户的名称。

答案 1 :(得分:2)

您可以使用VIEW检查您的用户是否具有select * from session_privs创建权限。

请注意,为了能够创建视图,创建它的用户需要被授予所有正在使用的对象的SELECT权限,以及提到的CREATE VIEW权限。您也可以通过查询USER_TAB_PRIVS并确认用户收到错误来检查。

答案 2 :(得分:1)

我遇到了此错误,解决方法是grant select WITH GRANT OPTION 从视图中包含的另一个架构到表。

答案 3 :(得分:0)

您必须为用户提供select any table特权。然后视图将成功编译。无需向用户明确授予对所有对象的选择。

答案 4 :(得分:0)

当我想在sql开发人员中执行上述查询时遇到问题,因为我没有足够的权限来创建视图或其他oracle对象模式,如触发器,包,程序等。我发现错误即“错误”第1行:ORA-01031权限不足“。所以,我需要所有权限来练习所有这些查询和程序。我采取了以下步骤来解决我的问题:

  1. 当我以用户名'scott'登录时,我的名字是'scott'而不是'Dhruv'。我的目标是将所有特权授予我,即授予用户'scott'。
  2. 为此,我需要以DBA身份进入数据库。现在,问题是!如何以DBA身份登录。为此,我打开了命令提示符,并按照以下步骤以sysdba身份登录数据库:
  3. a)在窗口运行中,我键入cmd以打开命令提示符。我键入:sqlplus / nolog这意味着我在没有提供所需凭据的情况下登录 b)我对自己的底层操作系统进行了身份验证,并以DBA身份输入数据库。为此,我输入命令提示符:connect / as sysdba; c)如果存在,我评估了我的数据库中的DBA用户。为此我输入:从V $ database中选择名称; d)我们在这里执行此命令。我终于通过输入命令授予自己(scott)在sql developer中创建视图:grant create view to scott; e)最后,我通过键入以下内容授予自己所有权限:授予scott所有权限;

    命令提示符快照:我已经附上了。

    最后,我执行并创建了我的观点:我已附上

答案 5 :(得分:0)

  1. 首先,您需要为用户提供身份验证,因此您需要知道系统中正常情况下谁 dba 提供此身份验证,因此请 conn system/ *password*
  2. 通过 put grant create view to *DataBaseUsername*; 提供盛大或认证
  3. 与您的用户建立连接并应用您的命令