Oracle用户安全管理(三)
ant succeeded.
C、 Jeff又把create session权限授予Emi
sys@OCM> conn Jeff/Jeff
Connected.
jeff@OCM> grant create session to Emi;
Grant succeeded.
D、最后用Emi登录
jeff@OCM> conn Emi/Emi
Connected.
Emi登录成功,说明用with adminoption权限级联授权成功。
E、 管理员收加Jeff的grant createsession 权限。
emi@OCM> conn / as sysdba
Connected.
sys@OCM> revoke createsession from Jeff;
Revoke succeeded.
F、Jeff用户登录
sys@OCM> conn Jeff/Jeff
ERROR:
ORA-01045: user JEFF lacks CREATE SESSIONprivilege; logon denied
Warning: You are no longer connected toORACLE.
报错,说明权限回收成功
G、 最后我们看看用Emi用户登录
sys@OCM> conn Emi/Emi
Connected.
登录成功,说明权限回收不级联。
(2)with grant option对象权限赋予级联,取消也是级联的,如下图所示:
不同的是管理员收回用withgrant option授权的用户对象权限时,权限会因传播
而失效,如grant select on table with grant option to Jeff,Jeff用户把此权限授予
Emi,但管理员Bob收回Jeff的权限时,Emi的权限也会失效,但管理员不可以
直接收回Emi的SELECT ON TABLE 权限。
而失效,如grant select on table with grant option to Jeff,Jeff用户把此权限授予
Emi,但管理员Bob收回Jeff的权限时,Emi的权限也会失效,但管理员不可以
直接收回Emi的SELECT ON TABLE 权限。
好这个测试跟上面一样,很简单,我就不来做了。没明白的自己测试一把就明白了。
3、授予权限
grant create any table to gyj;
grant select any table to gyj; --gyj用户无法访问SYS用户中的DBA_系列视图、
数据字典表
数据字典表
grant update on t10 to gyj with grant option;
grant update(id) on t10 to gyj with grant option;
4、撤销权限
revoke create any table from gyj;
revoke update on t10 from gyj;
三、创建和管理角色
1、角色的作用
(1)简化权限管理:将一些权限授予给某个角色,然后将该角色授予给各个用户,
而不是将同一组权限授予给多个用户。
而不是将同一组权限授予给多个用户。
(2)动态地管理权限:修改了角色关联的权限,则授予该角色所有的用户都会立即
自动获得修过的权限。
(3)有选择性地应用权限:启用或禁用角色可以暂时打开或关闭权限。
2、角色的特性
(1)角色就像用户,可以将权限授予给角色,也可以撤销角色的权限。
(2)角色就像系统权限,可以将其授予给用户或其它角色,也可以撤销用户或
其它角色的角色。
其它角色的角色。
(3)角色可以由系统权限和对象权限组成。
(4)可以针对授予某一角色的每个用户启用或禁用该角色。
(5)可能需要口令才能启用角色。
(6)角色不由任可用户拥有,角色也不属于任可方案。
3、预定义角色
(1)CONNECT:
CREATE SESSION
(2)RESOURCE:
CREATE CLUSTER/CREATE INDEXTYPE/CREATE OPERATOR/CREATEP
ROCEDURE/CREATE SEQUENCE/CREATE TABLE/CREATE TRIGGER/
CREATE TYPE
ROCEDURE/CREATE SEQUENCE/CREATE TABLE/CREATE TRIGGER/
CREATE TYPE
(3)DBA:具有大多数系统权限和其它若干个角色。不要将其授予给管理员
之外的人员
之外的人员
4、创建角色,操作如下命令:(注意红色字体)
(1)先做一系列的查询
gyj@OCM> select * from dba_role_privs where grantee='Emi';
no rows selected
gyj@OCM> select * from role_sys_privs where role='ROLE_GYJ1';
no rows selected
gyj@OCM> select * from role_tab_privswhere role='ROLE_GYJ1';
no rows selected select * from session_privs;
gyj@OCM> conn Emi/Emi
Connected.
emi@OCM> select * from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
(2)开始建角色及授权
gyj@OCM> create role role_gyj1;
Role created.
gyj@OCM> grant select any table torole_gyj1;
Grant succeeded.
gyj@OCM> grant role_gyj1 to Emi;
Grant succeeded.
emi@OCM> conn Emi/Emi
Connected.
emi@OCM> select * from gyj.t10;
ID NAME
--------------------------------------------------------------------------------------------------------------
1 gyj1
emi@OCM> select * from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
SELECT ANY TABLE
四、创建和管理概要文件
1、创建概要文件
CREATE PROFILE app_user LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME 45
LOGICAL_READS_PER_SESSION DEFA