user Privilege 用户权限
--系统权限
Select * From System_Privilege_Map --系统权限表
Create User b Identified By b --创建空用户
sqlplus b/b@testDB --连接报错,ORA-01045: 用户 B 没有 CREATE SESSION 权限; 登录被拒绝
Grant Create Session To b --分配给Create Session的权限
create table t(id int); --权限不足
Grant Create Table To b
create table t(id int); --ORA-01950: 对表空间 'USERS' 无权限
Grant UNLIMITED Tablespace To b --不限制使用表空间,可以使用任何表空间
--对象权限
Create User c Identified By c
Grant Create Session To c
sqlplus c/c@testDB
Select * From b.t --ORA-00942: 表或视图不存在 没有访问该对象的权限
--需要登录用户b,给c授权该对象的权限
Grant Select On t To c --将表t的查询权限授权给c,c再查询可以查到
Grant All T To c --将表t的所有权限授权给c
Grant All T To c With Grant Option --将表t的所有权限授权给c,并允许c将这些权限授权给其他用户
Revoke All On T To C --收回授予用户c的关于表t的所有权限
--查询用户有哪些权限
Select * From dba_sys_privs Where grantee='B' --系统权限
Select * From dba_tab_privs Where grantee='C' --对象权限
Select * From dba_role_privs Where grantee='DBA' --角色权限
Select * From dba_roles --角色表,每个角色包含一些权限
Create Role role_test Identified By oracle --创建测试用户
Grant Create Session,Dba To role_test --授权创建session和DBA角色的权限
sqlplus role_test/oracle@testdb --登录
Select * From b.t; --由于拥有DBA权限,可以直接查询b用户的t表
--某些权限无法授权给角色,如UNLIMITED TABLESPACE
--any
Grant Create Any Table To b; --授予any table权限给用户b,让b可以创建属于其他用户的表
Grant Create Any Table To b With Admin Option; --授权any table给b时,同时允许b对其他用户授权
--ALL PRIVILEGES
Grant All RPIVILEGES To C --将所有系统权限授权给用户C
--PUBLIC用户
/*代表所有用户,被PUBLIC用户拥有的权限,就代表所有用户都有了该权限*/
--Dependent Privileges 依赖权限
/*
sys将权限授予b用户,b用户又将权限授予给c
sys收回b的该权限时,c用户的权限是否被收回
对象权限被收回 系统权限仍保留
*/
--系统权限
Select * From System_Privilege_Map --系统权限表
Create User b Identified By b --创建空用户
sqlplus b/b@testDB --连接报错,ORA-01045: 用户 B 没有 CREATE SESSION 权限; 登录被拒绝
Grant Create Session To b --分配给Create Session的权限
create table t(id int); --权限不足
Grant Create Table To b
create table t(id int); --ORA-01950: 对表空间 'USERS' 无权限
Grant UNLIMITED Tablespace To b --不限制使用表空间,可以使用任何表空间
--对象权限
Create User c Identified By c
Grant Create Session To c
sqlplus c/c@testDB
Select * From b.t --ORA-00942: 表或视图不存在 没有访问该对象的权限
--需要登录用户b,给c授权该对象的权限
Grant Select On t To c --将表t的查询权限授权给c,c再查询可以查到
Grant All T To c --将表t的所有权限授权给c
Grant All T To c With Grant Option --将表t的所有权限授权给c,并允许c将这些权限授权给其他用户
Revoke All On T To C --收回授予用户c的关于表t的所有权限
--查询用户有哪些权限
Select * From dba_sys_privs Where grantee='B' --系统权限
Select * From dba_tab_privs Where grantee='C' --对象权限
Select * From dba_role_privs Where grantee='DBA' --角色权限
Select * From dba_roles --角色表,每个角色包含一些权限
Create Role role_test Identified By oracle --创建测试用户
Grant Create Session,Dba To role_test --授权创建session和DBA角色的权限
sqlplus role_test/oracle@testdb --登录
Select * From b.t; --由于拥有DBA权限,可以直接查询b用户的t表
--某些权限无法授权给角色,如UNLIMITED TABLESPACE
--any
Grant Create Any Table To b; --授予any table权限给用户b,让b可以创建属于其他用户的表
Grant Create Any Table To b With Admin Option; --授权any table给b时,同时允许b对其他用户授权
--ALL PRIVILEGES
Grant All RPIVILEGES To C --将所有系统权限授权给用户C
--PUBLIC用户
/*代表所有用户,被PUBLIC用户拥有的权限,就代表所有用户都有了该权限*/
--Dependent Privileges 依赖权限
/*
sys将权限授予b用户,b用户又将权限授予给c
sys收回b的该权限时,c用户的权限是否被收回
对象权限被收回 系统权限仍保留
*/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1079773/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15810196/viewspace-1079773/