7

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

谁能告诉我可能是什么问题。我尝试遵循此处提到的另一个 stackoverflow 帖子,但它与不同的模式有关。

ORA-01031: 选择视图时权限不足

请让我知道,因为我是新来的。

我的查询如下:

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

我的解决方案:

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

6 回答 6

7

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

GRANT CREATE VIEW TO <dbusername>;

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

于 2015-03-12T10:13:35.610 回答
2

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

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

于 2013-04-29T09:39:32.547 回答
1

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

  1. 因为我以用户名“scott”登录,所以我的名字是“scott”而不是“Dhruv”。我的目标是将所有权限授予我,即授予用户“scott”。
  2. 为此,我需要以 DBA 身份输入数据库。现在,问题是!如何以 DBA 身份登录。为此,我打开命令提示符并按照以下步骤以 sysdba 身份登录数据库:

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;

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

最后,我执行并创建了我的视图:我已附加

于 2016-12-06T16:05:47.940 回答
1

我遇到了这个错误,解决方案是grant select WITH GRANT OPTION 从视图中包含的另一个模式中获取一个表。

于 2020-11-03T13:26:18.073 回答
0
  1. 首先,您需要给用户身份验证,所以您需要知道系统中正常情况下谁 dba 进行此身份验证,所以请conn system/ *password*
  2. 通过 put 给予盛大或认证grant create view to *DataBaseUsername*;
  3. 与您的用户建立连接并应用您的命令
于 2021-04-30T23:10:01.023 回答
-1

您必须授予用户选择任何表的权限。然后视图将成功编译。无需显式授予用户对所有对象的选择。

于 2016-02-04T16:04:34.363 回答