当我尝试创建包含不同表的视图时,出现以下错误:第 1 行错误:ORA-01031 权限不足。
谁能告诉我可能是什么问题。我尝试遵循此处提到的另一个 stackoverflow 帖子,但它与不同的模式有关。
请让我知道,因为我是新来的。
我的查询如下:
原始问题:创建一个视图以选择员工 ID、员工姓名、雇用日期和部门编号。
我的解决方案:
CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
当我尝试创建包含不同表的视图时,出现以下错误:第 1 行错误:ORA-01031 权限不足。
谁能告诉我可能是什么问题。我尝试遵循此处提到的另一个 stackoverflow 帖子,但它与不同的模式有关。
请让我知道,因为我是新来的。
我的查询如下:
原始问题:创建一个视图以选择员工 ID、员工姓名、雇用日期和部门编号。
我的解决方案:
CREATE VIEW SIMPVIEW AS
SELECT EMPNO, ENAME, HIREDATE,DEPTNO
FROM EMP;
那么可能你可能没有权限CREATE VIEW
在你的数据库模式中执行命令...登录到 SYSDBA 帐户并发出命令
GRANT CREATE VIEW TO <dbusername>;
此处<dbusername>
应替换为您要授予该CREATE VIEW
命令访问权限的用户的名称。
您可以使用 . 检查您的用户是否具有VIEW
创建权限select * from session_privs
。
请注意,为了能够创建视图,创建它的用户需要被授予SELECT
对所有正在使用的对象的权限,以及提到的CREATE VIEW
权限。USER_TAB_PRIVS
您还可以通过向收到错误的用户查询来检查这一点。
当我想在 sql developer 中执行上述查询时,我遇到了一些问题,因为我没有足够的权限来创建视图或其他 oracle 对象模式,例如触发器、包、过程等。我发现错误是“第 1 行错误” : ORA-01031 权限不足”。所以,我需要所有权限来练习所有这些查询和程序。我采取了以下步骤来解决我的问题:
a) 在窗口运行中,我输入 cmd 打开命令提示符。我输入: sqlplus /nolog 这意味着我在没有提供所需凭据的情况下登录。
b) 我为我的底层 O/S 验证了自己,并以 DBA 身份输入数据库。为此,我输入了命令提示符:connect / as sysdba; c) 我评估了谁是我的数据库中的 DBA 用户(如果存在)。为此,我输入:从 V$database 中选择名称;d) 我们在这里执行这个命令。我终于允许自己 (scott) 通过键入以下命令在 sql developer 中创建视图:grant create view to scott; e) 最后,我通过键入以下内容授予自己所有权限:将所有权限授予 scott;
命令提示符快照:我已附上。
最后,我执行并创建了我的视图:我已附加
我遇到了这个错误,解决方案是grant select WITH GRANT OPTION
从视图中包含的另一个模式中获取一个表。
conn system/ *password*
grant create view to *DataBaseUsername*;
您必须授予用户选择任何表的权限。然后视图将成功编译。无需显式授予用户对所有对象的选择。