一、数据库connect、resource和dba三种标准角色介绍
授权语句:
grant connect ,resource,dba to user with admin option;
注意:其中的“with admin option”选项的含义是权限转授,该用户user能把他得到的这个权限再转授给其他用户user。)
经过上述授权以后,用户拥有connect、resource和dba三个角色的权限。
(1)Connect 角色,是授予最终用户的典型权利,最基本的权利,能够连接到ORACLE数据库中,仅具有创建SESSION的权限。
Create session--建立会话;
可以授权特定表的指定权限,做SELECT、UPDATE、INSERT,DELETE等操作
授权语句
-- 授权给账号 指定表 插入,更新,删除,查询权限
grant select,update,delete,insert on tablename to username;
2)Resource 角色,是授予开发人员的,能在自己的方案中创建表、序列、视图等。
Create cluster--建立聚簇;
Create indextype--建立索引;
Create operator --建立操作符;
Create procedure--建立过程;
Create sequence—建立序列;
Create table--建表;
Create trigger--建立促发器;
Create type--建立类型。
同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。
确实没有创建视图的权限,由此看来如果需要创建视图权限,只能单独授权:
GRANT CREATE VIEW TO username;
(3)DBA角色,是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。
可以通过 下面的语句查询DBA具体的权限
select grantee,privilege from dba_sys_privs where grantee='DBA' order by privilege;
二、相关查询
1.从dba_sys_privs查看权限grantee privilege:
select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
SELECT * FROM dba_tab_privs a WHERE a.grantee = 'username'; -- 查询对象权限:
SELECT * FROM dba_role_privs a WHERE a.GRANTEE = 'username'; -- 查询角色权限:
SELECT * FROM dba_sys_privs a WHERE a.GRANTEE = 'username'; -- 查询系统权限:
2.查看一个用户的所有系统权限(包含角色的系统权限)
select privilege from dba_sys_privs where grantee='DATAUSER'
union
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );