我在学校使用 SQL*Plus,我使用用户名 Scott。我无法创建视图,因为它说:
ORA-01031: insufficient privileges;
我已经搜索和搜索了,但似乎没有什么是正确的。有什么帮助吗?
我在学校使用 SQL*Plus,我使用用户名 Scott。我无法创建视图,因为它说:
ORA-01031: insufficient privileges;
我已经搜索和搜索了,但似乎没有什么是正确的。有什么帮助吗?
正如错误所述 - 您的权限不足以创建视图 - 您必须要求数据库管理员授予您此权限。如果您可以以数据库管理员身份登录,则必须执行语句(我不能保证正确性,手头没有oracle数据库)
GRANT CREATE ANY VIEW TO Scott;
或者
GRANT CREATE VIEW TO Scott;
您需要将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
步骤 1-将 ss/ss 连接为 sysdba;
第 2 步 - 授予 Scott 创建任何视图;
第 3 步 - 连接 scott/tiger
第 4 步 - 创建或替换视图 v 为 select *from emp;
要以 DBA(数据库管理员)身份登录,您可以使用:
sqlplus / as sysdba
或者
sqlplus sys as sysdba