创建视图时引用表的权限问题

在做imp的时候,发现log中有以下报错:

通过直接在数据库查询,发现报错没有权限,但是select却是能够操作:

奇怪的是,MYUESR已经有dba权限,难道还不能建视图:
于是进行以下测试:

先创建2个用户,并给予connect和resource权限

用user2用户建表和视图,其中表和视图是引用到user1的表:user1.main,发现就算给user2 dba权限,建视图还是会报权限不够。但是建表没问题。

必须进行显式授权,才能建立视图:

另外,在有dba权限和select any table的权限下,尝试在user2下建表,表有外键约束,参照user1用户下的main表,发现也是报错的:

必须也进行显式授权:

结论:
1.建view的时候如果需要select别的schema的表,必须显式授权(授予dba 的role角色没用)
2.建table的时候如果需要reference别的schema的表,也必须显示授权(授予dba 的role角色没用)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.