首页 文章

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

提问于
浏览
7

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

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

ORA-01031: insufficient privileges when selecting view

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

我的查询如下:

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

我的解决方案

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

4 回答

  • 4

    那么您可能没有权限在数据库模式中执行 CREATE VIEW 命令...登录到SYSDBA帐户并发出命令

    GRANT CREATE VIEW TO <dbusername>;
    

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

  • 2

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

    请注意,为了能够创建视图,创建它的用户需要在所有正在使用的对象上获得 SELECT 权限,以及提到的 CREATE VIEW 权限 . 您还可以通过查询 USER_TAB_PRIVS 并通过用户获取错误来检查 .

  • 0

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

  • 0

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

    • 当我以用户名'scott'登录时,我的名字是'scott'而不是'Dhruv' . 我的目标是将所有特权授予我,即授予用户'scott' .

    • 为此,我需要以DBA身份进入数据库 . 现在,问题是!如何以DBA身份登录 . 为此,我打开了命令提示符,并按照以下步骤以sysdba身份登录数据库:

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

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

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

相关问题