访问权限

阶级性和特权

范例——有三个用户test1,test2,test3, 三个用户都具有DBA色色权限。

         用TEST1用户创建一个表T1,并将其查询权限授予TEST2;

              用TEST2用户创建一个视图,视图的基表是TEST1.T1,并将查询权限授予TEST3

1.授权

    1.1. 视图中,类似于定义者权限的存储过程,是屏蔽了角色权限的。比如如果TEST1没有显式地将T1表的SELECT权限给予TEST2,那么TEST2在创建视图V_T1时也会报ORA-01031错误,即使TEST2用户拥有DBA角色权限。

grant select on v_t1 to test3;

 

 1.2.如果在用户test2的视图中,引用了其他用户test1的表,用户test2将视图的访问权限给予用户test3,那么就变相地将用户test1的表的访问权限给予了用户test3,因此,用户test2必须有将用户test1的表的访问权限转授用户test3,也就是用户test1在授予test2权限时,必须使用with grant option。

grant select on t1 to a with grant option;

*由于有SELECT ANY TABLE权限的存在,所有的用户表都可以被访问。但是显式授予表的权限时,似乎表的权限有更高的优先级,并且没有跟系统权限和角色权限进行结合。 

 

 

 

2.权限的查看

     

       2.1:与权限,角色相关的视图大概有下面这些:

DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限

SESSION_PRIVS: 当前用户所拥有的全部权限 ROLE_SYS_PRIVS: 某个角色所拥有的系统权限

注意: 要以SYS用户登陆查询这个视图,否则返回空. ROLE_ROLE_PRIVS: 当前角色被赋予的角色

SESSION_ROLES: 当前用户被激活的角色 USER_ROLE_PRIVS: 当前用户被授予的角色

 

       2.2:另外还有针对表的访问权限的视图:

TABLE_PRIVILEGES            ALL_TAB_PRIVS         ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值