Oralce-资源配置PROFILE
profile:作为用户配置文件,它是密码限制,资源限制的命名集合
在安装数据库时,Oracle自动会建立名为default的默认配置文件
使用profile文件时,要注意以下几点:
建立用户时,如果不指定profile选项,Oralce会自动将default分配给相应的数据库用户
建立profile文件时,如果只设置了部分密码和资源限制,其他选项会自动使用默认值
使用profile管理密码时,密码管理选项总是处于被激活状态;而如果使用profile管理资源,必须激活资源限制
一个用户只能分配一个profile文件。如果要同时管理用户的密码和资源,那么在建立profile时应该同时指定密码和资源选项
使用profile管理密码
可以实现账户锁定、密码的过期时间、密码历史和密码的复杂度
账户锁定
当用户连续输入多少次错误密码后,Oracle会自动锁定用户的账户,并且可以规定账户的锁定时间,由以下参数
--failed_login_atempts:该参数限制用户在登录到Oracle数据库时允许失败的次数。
--password_login_time:该参数用于指定账户被锁定的天数
如:创建的profile文件,要求设置连续失败次数为5,超过该次数后,账户被锁定7天,用alter user 将profile文件指定给dongfang
create profile lock_account limit
failed_login_attempts 5
password_lock_time 7
/
alter user dongfang profile lock_account
如果建立profile文件时没有提供这些参数,那么会使用默认值unlimited,这种情况下,需要DBA手动解锁用户账户
密码过期时间
--password_life_time:该参数用于设置口令的有效时间,单位为天数
--password_grace_time:该参数用于设置口令失效的“宽限时间”
如:下面创建一个profile文件(password_lift_time),并设置用户的密码有效期为30天,密码宽限3天,然后使用alter user 语句将profile分配给用户dongfang
create profile password_lift_time limit
password_life_time 30
password_grace_time 3;
alter user dongfang profile password_lift_time;
密码历史
控制账户密码的可重复使用次数或可重用时间
--password_reuse_time:该参数指定密码可重用的时间,单位为天
--password_reuse_max:该参数设置口令在能够重新使用之前,必须改变的次数。
在使用密码历史选项时,只能使用其中一个参数,并将另外一个参数设置为unlimited
密码的复杂度
强制用户的密码必须具有一定的复杂度。使用验证函数验证用户的复杂度,只需要将这个函数的名称指定给profile文件中的password_verify_function参数,Oracle就会自动使用该函数对用户的密码和格式进行验证。
11g中有所改进,$oracle_home\rdbms\admin目录下创建一个新的密码验证文件utlpwdmgsql,其中,不仅提供了验证函数verify_function,还提供了一个新建的verify_function_11g函数。
使用profile管理资源
如果使用profile管理资源,必须将resource_limit参数设置为true,以激活资源限制。由于该参数是动态参数,所以可以使用alter system语句进行修改
如:首先使用show命令查看resource_limit参数值,然后使用alter system命令修改该参数的值为true,从而激活资源限制
show parameter resource_limit;
alter system set resource_limit=true;
利用profile配置文件,可以对以下系统资源进行限制:
CPU时间:为了防止无休止地使用CPU时间,限制用户每次调用使用的CPU时间以及在一次会话期间所使用的CPU时间
逻辑读:为了防止过多使用系统的I/O操作,限制每次会话时读取的逻辑数据块数目。
用户的并发会话数
会话空闲的限制:当一个会话空闲的时间达到了限制值时,当前事物被回滚,会话被终止并且所占用的资源被释放
会话可持续的时间:如果一个会话的总计连接时间达到了该限制值,当前事物被回滚,会话被终止并释放所占用的资源
会话所使用的SGA空间限制
当一个会话或SQL语句占用的资源超过profile文件中的限制时,Oracle将终止并回滚当前的事务,然后向用户返回错误的信息。如果受到的限制时会话级的,在提交或回滚事务后,用户会话将被终止;而受到调用级限制时,用户会话还能继续进行,只是当前执行的SQL语句将被终止。
参数如下:
--session_per_user:用户可以同时连接的会话数量
--cpu_per_session:限制用户在一次进行数据库会话期间可以使用的CPU时间,单位为百分之一秒。
--cpu_per_call:限制用户每条SQL语句所使用的CPU时间
--logical_reads_per_session:限制每个会话所能读取的数据块数量,包括从内存中读取的数据块和从磁盘中读取的数据块
--connect_time:限制每个用户连接到数据库的最长时间,单位为分钟
--idle_time:该参数限制每个用户会话连接到数据库的最长时间。超过该空闲时间的会话,系统会终止该会话。
维护profile文件
1.修改profile文件
如:对password_lift_time文件(profile)的资源文件的资源限制参数进行修改:
alter profile password_lift_time limit
cpu_per_session 20000
sessions_per_user 10
cpu_per_call 500
password_life_time 180
failed_login_attempts 10
/
对配置文件所做的修改只有在用户开始新的会话时才会有效
2.删除profile文件
如:删除分配给dongfang这个用户的password_lift_time配置文件
drop profile password_lift_time cascade
如果指定的profile,已经分配给某个用户,那么必须在删除时使用cascade,为用户指定的配置文件被删除时,Oracle会指定为用户指定default配置文件
3.显示profile
DD--dba_users
DD--dba_profiles