我已经做了一张桌子,跟下面一样。

该表的结构如下:
Create Table advanced
(Id varchar(15),
Name varchar(20),
Dept varchar(15),
Cgpa float,
Birth_date date,
Mob_no int,
Dist varchar(20),
Salary number(8));当我想按下面的方式创建视图时,sql加号给出了错误“不够特权”。
Create View advanced_data as
(
select name,dept,dist,salary from advanced
);我怎样才能解决这个问题?
发布于 2015-11-19 08:26:34
这似乎表明,您的用户没有创建视图的权限。
要解决这个问题,请执行以下步骤:以sysdba的身份登录sqlplus,然后运行以下命令。
GRANT CREATE VIEW TO <user Name>;
GRANT CREATE ANY VIEW TO <user Name>;Oracle DBA博客 ORA-01031:“权限不足”错误发生在您试图执行未被授予适当权限的程序或函数时。
对于DBA,如果目标OS可执行文件没有读取和执行权限(例如,UNIX/Linux中的(770) ),并且确保oracle用户是dba组的成员(例如/etc/ group ),那么ORA-01031就会发生。Windows注册表中也有类似的权限。
在Oracle内部,可以通过使用无限数据库权限登录"as sysdba“来避免"ORA-01031:不足权限”错误。
发布于 2015-11-19 08:25:21
来自这里
若要创建视图,必须满足以下要求: 您必须已被授予CREATE视图(在架构中创建视图)或创建任何视图(在另一个用户的模式中创建视图)系统特权,无论是显式还是通过角色。 必须显式地授予视图或SELECT表的所有基本对象的SELECT、INSERT、UPDATE或DELETE对象权限、插入任何表、更新任何表或删除任何表系统权限。您可能没有通过角色获得这些特权。 此外,为了授予其他用户对您的视图的访问权限,您必须已经使用grant选项或使用ADMIN选项获得了基本对象的对象特权。如果你没有,受赠者就不能进入你的视野。“
因此,您需要执行以下查询才能获得用户创建视图的权限:
GRANT CREATE VIEW TO usernameOracle文档还明确指出:
包含视图的架构的所有者必须具有从视图所基于的所有表或视图中选择、插入、更新或删除行所需的权限。必须直接授予所有者的这些特权,而不是通过角色。
https://stackoverflow.com/questions/33798554
复制相似问题