oracle学习笔记(二十一):访问其它用户下的对象


1、以 sysdba 身份登录 oracle,解锁 hr 用户,并设置密码为 lion:

oracle学习笔记(二十一):访问其它用户下的对象

2、 以 hr 用户登录 oracle:

oracle学习笔记(二十一):访问其它用户下的对象

3、我们知道,前面以 scott 登录 oracle 时,scott 查询自己用户下的表,用语句:select * from emp; 即可;

但是以 hr 登录 oracle 后,用 hr 查询 scott 用户下的表,要指明所查询对象所属的用户,用如下语句:

select * from scott.emp;

oracle学习笔记(二十一):访问其它用户下的对象

但是报错了,如上所示;原因是:默认情况下,每个用户只能查询自己空间下的对象,不能查询其他用户的对象;

可以通过 sysdba,授予 hr 查询其他所有用户空间下 对象的权限:grant select any table to hr;

oracle学习笔记(二十一):访问其它用户下的对象

此时再以 hr 查询 scott 用户下的对象就可以了:select * from scott.emp;

oracle学习笔记(二十一):访问其它用户下的对象

4、hr 用户查看自己所具有的权限:select * from user_sys_privs;

oracle学习笔记(二十一):访问其它用户下的对象

5、以 sysdba 身份,撤销 hr 用户查询所有用户空间下对象的权限:revoke select any table from hr;

oracle学习笔记(二十一):访问其它用户下的对象