一、用户的安全控制域
包括用户默认表空间,用户排序临时表空间,表空间配额,账户上锁,资源限制,直接权限,角色权限。
概要文件:profiles,一组命名了的口令和资源限制。通过CREATE USER 或ALTER USER赋予用户,概要文件可以被激活或关闭。
使用概要文件可以将用户按安全控制和资源使用要求分成若干个组,根据不同需要创建不同概要文件,再将概要文件赋予相关用户。
创建数据库时,自动创建了一个DEFAULT默认概要文件
概要文件只能赋予用户不能赋予角色,创建用户时未指定会将默认概要文件赋予
步骤:
利用CREATEPROFILE 命令创建一个概要文件,定义资源和口令的限制。 使用CREATE USER 或ALTER USER将概要文件赋予用户。
并且需要在初始化参数文件将RESOURCE_LIMIT设置TRUE。
alter system set resource_limit=true;
ORACLE 11G中默认未开启。
SQL> show parameter resource_limit;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
resource_limit boolean FALSE
二、资源限制的设置
概要文件的资源限制可以加在会话一级,超过会话级的资源限制时,系统返回ORA-02391:exceeded simjltaneous session_per_user limit.服务器与用户连接断开。
会话级可以设置:
sessions_per_user 每个用户名所允许并行会话数
cpu_per_session 总共的CPU时间,单位1%S。
idle_time 无活动时间,单位分,只计算服务器进程
connect_time 连接时间,单位分
logical_reads_per_session物理磁盘和逻辑内存读的数据块数。
调用一级设置的资源限制强加在每执行一条SQL语句的调用上,超过调用级资源限制时,ORACLE系统挂起所处理语句,回滚语句,之前语句正常,用户会话还连接。
可设置cpu_per_call每个调用的CPU时间,单位1%S。
logical_reads_per_call 每个调用可读的数据块数。
#########################################
三、创建概要文件示例
名字test_prof,使用此概要文件的用户同时可打开3个连接,每个会话最多可用CPU时间16800*1%S=168秒。
每个会话最多可读23688个数据块。每个会话连接最多180分钟三小时。每个会话无活动时间不超过30分钟。
查看有哪些概要文件——我是在完成下面实验后查询的。
SQL> select * from dba_profiles whereresource_name='FAILED_LOGIN_ATTEMPTS';
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------- --------------------------------- --------------------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
MONITORING_PROF FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
ILE
TEST_PROF FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
TEST2_PROF FAILED_LOGIN_ATTEMPTS PASSWORD 4
资源管理
配置文件创建:
SQL> create profile test_prof limitsessions_per_user 3 cpu_per_session 16800 logical_reads_per_session 23688 connect_time180 idle_time 30;
RESOURCE列显示为KERNEL时,表示是一个资源限制。PASSWORD表示是口令限制。
SQL> select * from dba_profiles whereprofile like 'TEST%';
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------- --------------------------------- --------------------
TEST_PROF COMPOSITE_LIMIT KERNEL DEFAULT
TEST_PROF SESSIONS_PER_USER KERNEL 3
TEST_PROF CPU_PER_SESSION KERNEL 16800
TEST_PROF CPU_PER_CALL KERNEL DEFAULT
TEST_PROF LOGICAL_READS_PER_SESSION KERNEL 23688
TEST_PROF LOGICAL_READS_PER_CALL KERNEL DEFAULT
TEST_PROF IDLE_TIME KERNEL 30
TEST_PROF CONNECT_TIME KERNEL 180
口令管理
口令加锁通过两个参数实现FAILED_LOGIN_ATTEMPTS 在账户锁定前登陆失败的次数
PASSWORD_LOCK_TIME,登陆失败达到次数后锁定的天数。
口令过期通过两个参数PASSWORD_LIFE_TIME口令可以使用的天数,达到后口令做废。
PASSWORD_GRACE_TIME 口令过期后第一次成功使用原口令登陆后要改变口令的宽限天数。
口令历史:PASSWORD_REUSE_TIME口令可以重用前的天数
PASSWORD_REUSE_MAX口令可以重用前最大变化数。 两个参数不能同时为DEFAULT或UNLIMITED
口令复杂性检验PASSWORD_VERIFY_FUNCTION,新口令赋予用户前验证口令复杂性是否满足安全要求的一个PLSQL函数。
创建概要文件名为test2_prof。最大登陆失败次数3.达到3次锁定一天,unlimited则为永久锁定。口令可以使用30天。口令要在做废60天后可以重用。口令过期后4天内可以以原口令登陆。
SQL> create profile test2_prof limitfailed_login_attempts 3 password_lock_time 1 password_life_time 30 password_reuse_time60 password_grace_time 3;
SQL> select * from dba_profiles whereprofile like 'TEST%' and resource_type
SSWORD';
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------- --------------------------------- --------------------
TEST2_PROF FAILED_LOGIN_ATTEMPTS PASSWORD 3
TEST_PROF FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
TEST2_PROF PASSWORD_LIFE_TIME PASSWORD 30
TEST_PROF PASSWORD_LIFE_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_REUSE_TIME PASSWORD 60
TEST_PROF PASSWORD_REUSE_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST2_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST2_PROF PASSWORD_LOCK_TIME PASSWORD 1
TEST_PROF PASSWORD_LOCK_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_GRACE_TIME PASSWORD 3
TEST_PROF PASSWORD_GRACE_TIME PASSWORD DEFAULT
已选择14行。
更改profile文件中参数
SQL> alter profile test2_prof limitfailed_login_attempts 4 password_life_time 90 password_grace_time 90;
SQL> select * from dba_profiles whereprofile like 'TEST%' and resource_type='PA
SSWORD';
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------- --------------------------------- --------------------
TEST2_PROF FAILED_LOGIN_ATTEMPTS PASSWORD 4
TEST_PROF FAILED_LOGIN_ATTEMPTS PASSWORD DEFAULT
TEST2_PROF PASSWORD_LIFE_TIME PASSWORD 90
TEST_PROF PASSWORD_LIFE_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_REUSE_TIME PASSWORD 60
TEST_PROF PASSWORD_REUSE_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST2_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST2_PROF PASSWORD_LOCK_TIME PASSWORD 1
TEST_PROF PASSWORD_LOCK_TIME PASSWORD DEFAULT
TEST2_PROF PASSWORD_GRACE_TIME PASSWORD 90
TEST_PROF PASSWORD_GRACE_TIME PASSWORD DEFAULT
已选择14行。
###############################################################################
删除配置文件,如已经赋予用户要用CASCADE参数。
SQL> drop profile test_prof;
四、创建一个包含口令及资源限制的profile test_prof:
名字test_prof,最大错误次数3.达到3次锁定后永久锁定,管理员可以打开。口令有效期91天。口令过有效期后28天后能重新使用,即不能与原口令相同。口令过有效期后7天内可以登陆、修改口令,超过后未登陆修改则无法登陆系统。每个用户最多开启3个连接。每个会话使用CPU时间不超过16800*1%S=168秒。每个会话最多查阅23688数据块。每个连接最多为180分=3小时。每个用户连接后无活动时间为30分钟,超过ORACLE断开连接回滚未提交事务。
SQL> create profile test_prof limitfailed_login_attempts 3 password_lock_time unlimited password_life_time 91password_reuse_time 28 password_grace_time 7 sessions_per_user 3 cpu_per_session 16800logical_reads_per_session 23688 connect_time 180 idle_time 30;
SQL> select * from dba_profiles whereprofile = 'TEST_PROF';
PROFILE RESOURCE_NAME RESOURCE LIMIT
--------------- --------------------------------- --------------------
TEST_PROF COMPOSITE_LIMIT KERNEL DEFAULT
TEST_PROF SESSIONS_PER_USER KERNEL 3
TEST_PROF CPU_PER_SESSION KERNEL 16800
TEST_PROF CPU_PER_CALL KERNEL DEFAULT
TEST_PROF LOGICAL_READS_PER_SESSION KERNEL 23688
TEST_PROF LOGICAL_READS_PER_CALL KERNEL DEFAULT
TEST_PROF IDLE_TIME KERNEL 30
TEST_PROF CONNECT_TIME KERNEL 180
TEST_PROF PRIVATE_SGA KERNEL DEFAULT
TEST_PROF FAILED_LOGIN_ATTEMPTS PASSWORD 3
TEST_PROF PASSWORD_LIFE_TIME PASSWORD 91
TEST_PROF PASSWORD_REUSE_TIME PASSWORD 28
TEST_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
TEST_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
TEST_PROF PASSWORD_LOCK_TIME PASSWORD UNLIMITED
TEST_PROF PASSWORD_GRACE_TIME PASSWORD 7
已选择16行。