user_sys_privs user_role_privs role_role_privs dba_tab_privs dba_sys_privs

1.查询对象权限视图

select * from dba_tab_privs

where GRANTEE='user_name' and owner='owner_name' and table_name='';

返回结果为空  --如果是对象授权应该返回有查询权限的一条记录

 

2.查询系统权限视图

select * from dba_sys_privs

 where GRANTEE='user_name';

 返回结果:1 row and privillege column value:unlimited tablespace

  --如果是系统授权,用户应该有授予了select any table的系统权限

3.这样看来用户不是直接用的grant sys privillege  and grant 对象 privlillege

  然后看看这个表是否授给了PUBLIC对象,这样所有的用户都可以访问和更新这个表。执行:

  select * from dba_tab_privs

  where GRANTEE='PUBLIC' and owner='owner_name' and table_name='同事不能更新的表名'

  and PRIVILEGE='UPDATE'

  返回结果为空

4.然后用同事登录的用户名和密码登录查询当前用户拥有的角色权限

  select * from session_roles ; 发现用户多了一个ROLE权限:role1

 原来DBA创建了一个角色:role1 ,然后执行脚本

grant select on table_name to role1;--把表的SELECT权限赋予role1

grant role1 to user_name;--把角色赋予了同事登录的账号

5. 查询

select * from dba_tab_privs

where GRANTEE='role1' and owner='owner_name' and table_name='同事不能更新的表名';

---返回得到该表的查询权限

 

6.如果需要更新权限,需要将表的UPDATE权限授予role1,然后我们就可以使用user_name登录更新这个表了

 grant update on table_name to role1;

 然后再在user_name用户下UPDATE table 成功

 

转自:http://blog.sina.com.cn/s/blog_6e02a2380100vv6q.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值