ORA-01927
[oracle@testos:/home/oracle]$ oerr ora 01927
01927, 00000, "cannot REVOKE privileges you did not grant"
// *Cause: You can only revoke privileges you granted.
// *Action: Don't revoke these privileges.
[oracle@testos:/home/oracle]$
模拟报错
基本的,众所周知对于ORACLE的系统权限,由sysdba角色的用户赋予用户A该权限,并通过WITH ADMIN OPTION将级联赋权的权限赋予用户A,A又将该权限赋予用户B时,B的该系统权限既可被A用户收回,也可被sysdba角色的用户收回(简述为系统权限可跨用户收回)。
那么,对象权限是否可以进行与上述类似的跨用户收回?本实验旨在讨论这个问题
**实验名称:**ORACLE对象权限跨用户收回的可行性
**实验目的:**研究ORACLE对象权限是否可以进行跨用户收回
实验准备:
-- 创建两个用户A和B并赋予密码,并且创建时两个用户均为非锁定状态:
CREATE USER a IDENTIFIED BY oracle ACCOUNT UNLOCK;
CREATE USER b IDENTIFIED BY oracle ACCOUNT UNLOCK;
grant connect,resource to a;
grant connect,resource to b;
实验过程:
-- 先检查用户a和用户b都没有对hr.employees的SELECT权限
SQL> SELECT GRANTEE,OWNER,TABLE_NAME,PRIVILEGE FROM user_tab_privs WHERE GRANTEE = 'A';
no rows selected
SQL> SELECT GRANTEE,OWNER,TABLE_NAME,PRIVILEGE FROM user_tab_privs WHERE GRANTEE = 'B';
no rows selected
-- 登录hr,将对hr.employees的SELECT权限赋给用户a
SQL> conn hr/hr
Connected.
SQL> GRANT SELECT ON employees TO a WITH GRANT OPTION;
Grant succeeded.
-- 查询用户a的对象权限
SQL>