3

我在学校使用 SQL*Plus,我使用用户名 Scott。我无法创建视图,因为它说:

ORA-01031: insufficient privileges;

我已经搜索和搜索了,但似乎没有什么是正确的。有什么帮助吗?

4

4 回答 4

13

正如错误所述 - 您的权限不足以创建视图 - 您必须要求数据库管理员授予您此权限。如果您可以以数据库管理员身份登录,则必须执行语句(我不能保证正确性,手头没有oracle数据库)

GRANT CREATE ANY VIEW TO Scott;

或者

GRANT CREATE VIEW TO Scott;
于 2013-12-15T15:06:44.587 回答
1

您需要将CREATE VIEW权限授予正在创建视图的USER

例如,我创建一个新用户,让它创建一个会话、一个表和一个视图:

SQL> create user test identified by test;

User created.

SQL> grant create session, create table, create view to test;

Grant succeeded.

SQL> conn test/test@pdborcl;
Connected.
SQL> Create Table advanced
  2   (Id  varchar(15),
  3   Name varchar(20),
  4   Dept  varchar(15),
  5   Cgpa  float,
  6   Birth_date date,
  7   Mob_no  int,
  8   Dist varchar(20),
  9   Salary  number(8));

Table created.

SQL> Create View advanced_data as
  2  (
  3  select name,dept,dist,salary from advanced
  4  );

View created.

如果我撤销权限,您将收到ORA-01031:权限不足

SQL> revoke create view from test;

Revoke succeeded.

SQL> conn test/test@pdborcl;
Connected.
SQL> Create or replace View advanced_data as
  2  (
  3  select name,dept,dist,salary from advanced
  4  );
Create or replace View advanced_data as
                       *
ERROR at line 1:
ORA-01031: insufficient privileges
于 2015-11-19T08:45:40.757 回答
0

步骤 1-将 ss/ss 连接为 sysdba;
第 2 步 - 授予 Scott 创建任何视图;
第 3 步 - 连接 scott/tiger
第 4 步 - 创建或替换视图 v 为 select *from emp;

于 2015-07-27T03:55:41.237 回答
-1

要以 DBA(数据库管理员)身份登录,您可以使用:

sqlplus / as sysdba

或者

sqlplus sys as sysdba
于 2014-05-09T08:37:11.583 回答