首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle 10g中权限不足

oracle 10g中权限不足
EN

Stack Overflow用户
提问于 2015-11-19 08:22:16
回答 2查看 1.7K关注 0票数 1

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

该表的结构如下:

代码语言:javascript
复制
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加号给出了错误“不够特权”。

代码语言:javascript
复制
Create View advanced_data as
(
select name,dept,dist,salary from advanced
);

我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-19 08:26:34

这似乎表明,您的用户没有创建视图的权限。

要解决这个问题,请执行以下步骤:以sysdba的身份登录sqlplus,然后运行以下命令。

代码语言:javascript
复制
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:不足权限”错误。

票数 3
EN

Stack Overflow用户

发布于 2015-11-19 08:25:21

来自这里

若要创建视图,必须满足以下要求: 您必须已被授予CREATE视图(在架构中创建视图)或创建任何视图(在另一个用户的模式中创建视图)系统特权,无论是显式还是通过角色。 必须显式地授予视图或SELECT表的所有基本对象的SELECT、INSERT、UPDATE或DELETE对象权限、插入任何表、更新任何表或删除任何表系统权限。您可能没有通过角色获得这些特权。 此外,为了授予其他用户对您的视图的访问权限,您必须已经使用grant选项或使用ADMIN选项获得了基本对象的对象特权。如果你没有,受赠者就不能进入你的视野。“

因此,您需要执行以下查询才能获得用户创建视图的权限:

代码语言:javascript
复制
GRANT CREATE VIEW TO username

Oracle文档还明确指出:

包含视图的架构的所有者必须具有从视图所基于的所有表或视图中选择、插入、更新或删除行所需的权限。必须直接授予所有者的这些特权,而不是通过角色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33798554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档