***角色***
***什么是角色呢?
我觉得oracle中的角色是权限的集合,oracle为了方便DBA授权就把一些常用权限授予角色,再把角色授予用户,这样用户就拥有了角色中的权限。
***那么如何创建角色? 给角色授权? 再把角色授予用户?
***用户查看自身权限? DBA回收用户角色以及权限?
看例子:
1)创建名为 myrole 的角色;

2)把这三个权限授予 myrole 这个角色;

3)把 myrole 这个角色授予 abc 这个用户;

4)abc用户登陆后,用 select * from session_privs; 语句查询自身所拥有权限;

5)撤销 abc 用户 myrole 角色;

*说明:这里要说明一下,比如说 abc 用户自身就拥有 create session 权限,虽然 myrole角色中拥有 create session 权限并授予 abc,但是 abc 被回收 myrole 权限后依然拥有 create session 权限。 这说明角色权限与用户自身权限互不干预。
6)回收 myrole 的 create table 权限;

*需要注意两点:
1、在resource角色里包含了unlimited tablesapce 系统权限,意思是不限制用户使用任何表空间,此权限太大,它包括可以访问system表空间,在实际应用中一般要将此权限收回,然后再对用户限制配额。
2、sys将resource角色授权给用户,其中有9个系统权限,只有unlimited tablespace可以单独收回(从角色里收回系统权限的特例)。