在Oracle 11g上授予创建视图的权限

5
我在学校使用SQL * Plus并使用用户名Scott。 我无法创建视图,因为它显示:
ORA-01031: insufficient privileges;

我搜索了很多,但貌似没有找到正确的方法。有什么帮助吗?

4个回答

17

正如错误所述-您的权限不足以创建视图-您将不得不要求数据库管理员授予您此权限。 如果您可以登录为数据库管理员,您将不得不执行该语句(我无法保证正确性,手头没有Oracle数据库)

GRANT CREATE ANY VIEW TO Scott;
或者
GRANT CREATE VIEW TO Scott;

那我是在家里用它,这是否意味着我可以作为数据库管理员登录?如果可以的话,怎么做? - David Lacombe
在安装Oracle数据库时,应该有一个时刻,您需要选择管理员密码或尝试使用默认用户SYSTEM和密码MANAGER登录。 - mkubacki
您可以尝试查看此答案,以获取有关如何登录Oracle数据库、授予权限以及其他信息的更多详细信息:https://dev59.com/wGMl5IYBdhLWcg3wbGl2 - vitfo

1
你需要授予创建视图的用户CREATE VIEW权限。

例如,我创建了一个新用户让它创建一个会话、一个表和一个视图:
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: insufficient privileges错误提示:
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

0

步骤1-使用sysdba连接ss/ss;
步骤2-授予Scott创建任何视图的权限;
步骤3-使用scott/tiger连接;
步骤4-创建或替换视图v,选择*from emp;


-1

要作为数据库管理员(DBA)登录,您可以使用以下方法:

sqlplus / as sysdba

或者

sqlplus sys as sysdba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接