0

我对撤销命令有疑问。我创建了角色并授予角色“SELECTE on table”权限。然后我将角色授予用户。然后我撤销用户的角色。但是用户仍然拥有他通过角色获得的“SELECT on table”权限。我做错了什么?

人力资源用户:

create table testtable (id number);--Table TESTTABLE created 
create role trole;--Role TROLE created 
grant select on testtable to trole;--Grant succeeded 
grant trole to test_user;--Grant succeeded 

测试用户:

set role trole;--Role TROLE succeeded. 
select * from hr.testtable;--working 

人力资源用户:

revoke trole from test_user;--Revoke succeeded. 

测试用户:

select * from hr.testtable;--working again despite that the fact the role is revoked. 

注意:没有任何其他授予 test_user

4

1 回答 1

0

撤消将删除用户的角色和属于该角色的任何特权。在您的情况下,听起来 test_user 具有一些额外的特权,例如 SELECT ANY TABLE 直接授予或通过 PUBLIC 角色继承。查看这篇文章以查找所有授予的权限:如何在 oracle 中显示用户的所有权限?

于 2020-04-25T16:18:58.203 回答