当我尝试创建包含不同表的视图时,我收到以下错误: 第1行出错: ORA-01031权限不足。
有谁能告诉我可能是什么问题。我试着按照这里提到的另一个stackoverflow帖子,但它与之相关 不同的模式。
ORA-01031: insufficient privileges when selecting view
请告诉我,因为我是新来的。
我的查询如下:
原始问题:创建一个视图以选择员工ID,员工姓名,雇用日期和部门编号。
我的解决方案:
CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
答案 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权限不足“。所以,我需要所有权限来练习所有这些查询和程序。我采取了以下步骤来解决我的问题:
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)
conn system/ *password*
grant create view to *DataBaseUsername*;
提供盛大或认证