oracle数据库用户之间授权
今天遇到一个数据库的问题:
系统数据库用户下创建了几个视图用于外部系统开发报表使用,当外部系统提取视图数据时,需要通过一个只能访问需要视图权限的用户,于是想到给他创建一个新的用户,并给这个用户分配只能访问这几个视图的权限。
- 使用 oracle sql developer 客户端登陆数据库。

2. 查看当前数据库用户拥有的角色:
select * from USER_ROLE_PRIVS;




查看用户系统权限:select * from dba_sys_privs;


查看用户系统权限:select * from user_sys_privs;

3、因为系统数据库用户拥有dba权限,所以,使用数据库系统用户创建用户:
create user BI identified by 123;

4、给BI用户授权连接权限:
grant connect to BI;

5、给BI用户授权
grant RESOURCE to BI;

6、给BI用户授权select 某视图的权限:

7、使用BI用户连接数据库:
查询视图发现提示表或视图不存在:SELECT * FROM VW_MONTHLY_BUDGET_ANALYSI;

在视图前加上视图所有者用户名称则可以查询成功。 eg:SELECT * FROM FSSC.VW_MONTHLY_BUDGET_ANALYSI;

7、给BI用户授权同义词权限:

8、使用BI用户连接数据库:
此时查询发现还是不可以!!!

9、在BI用户下创建同义词视图:

10、BI用户下直接查询视图名称则可以查询

11、但是登陆BI用户,则在视图列表里看不到任何视图,如何能够查询并且登陆用户也能看到该视图?
浙公网安备 33010602011771号