今天创建视图遇到一点问题,记录一下。
问题1:创建视图提示没有权限;ORA-01031: insufficient privileges
解决方案:登录sys用户,给需要创建视图的用户授予创建视图权限。
grant create any view to scott;
授权完后,可以正常创建视图。
问题2:视图创建完成后,其他用户访问视图会报表或视图不存在。ORA-00942: table or view does not exist
解决方案:直接访问视图访问不了,在视图前加上用户可以正常访问。即:
select * from v_users;--报错,ora-00942
--尝试加上前缀
select * from scott.v_users;--可以,能查询到数据
知道问题了,那就需要创建同义词,下面创建同义词。
问题3:创建同义词提示没有权限;ORA-01031: insufficient privileges
解决方案:登录sys用户,给需要创建同义词的用户授予创建同义词权限。
grant create synonym to scott;
同义词授权完成后,创建同义词。
create public synonym v_users for scott.v_users;
同义词创建完成后,可以正常访问视图了。
本文记录了在Oracle数据库中遇到的权限问题和视图访问问题。首先,当尝试创建视图时遇到ORA-01031错误,通过登录sys用户并授予create any view权限解决了权限不足的问题。然后,创建视图后,其他用户无法直接访问,通过在视图前加上用户名称可以正常查询,但为方便使用,创建了同义词。在创建同义词时再次遇到权限问题,同样通过sys用户授予create synonym权限,并成功创建公共同义词,使得所有用户能正常访问视图。
1156





