Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念。所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件。将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器时,系统就按照概要文件给他分配资源。在有的书中将其翻译为配置文件,其作用包括:
1、管理数据库系统资源。
利用Profile来分配资源限额,必须把初始化参数resource_limit设置为true
ALTER SYSTEM SET resource_limit=TRUE SCOPE=BOTH;
2、管理数据库口令及验证方式。
默认给用户分配的是DEFAULT概要文件,将该文件赋予了每个创建的用户。但该文件对资源没有任何限制,因此管理员常常需要根据自己数据库系统的环境自行建立概要文件
通过数据字典查看缺省资源配置内容:
select * from dba_profiles order by profile;
DEFAULT PROFILE:
2、DEFAULT PROFILE的内容为空,无限制
PROFILE的管理(资源文件)当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE
可以使用如下命令来启动当前资源限制:
当需要以后启动时也启动限制,必须在init.ora中设置
RESOURCE_LIMIT=true
PROFILE的口令机制限制:限制生效的前提:
A、RESOURCE_LIMIT:=TRUE
任务1:创建profile
创建概要文件my_profile
1)密码复杂性要求:启用;
2)密码长度最小值:8位;
3)密码错误输入三次,锁定账户,2分钟后自动解锁
任务2:
1)修改siebel用户的概要文件为my_profile
2)修改siebel密码(自行设定)
--创建密码复杂度校验函数
SQL> @?/rdbms/admin/utlpwdmg.sql
Function created.
Grant succeeded.
Profile altered.
Function created.
Grant succeeded.
--创建概要文件
SQL> create profile my_profile limit
2 failed_login_attempts 3 password_lock_time 2/1440
3 password_verify_function verify_function;
Profile created.
--修改siebel用户使用my_profile概要文件
SQL> alter user siebel profile my_profile;
User altered.
SQL> desc dba_users;
Name Null? Type
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
PASSWORD_VERSIONS VARCHAR2(8)
EDITIONS_ENABLED VARCHAR2(1)
AUTHENTICATION_TYPE VARCHAR2(8)
SQL> select username,default_tablespace,created,profile from dba_users;
USERNAME DEFAULT_TABLESP CREATED PROFILE
--------------- --------------- --------- ---------------
SYS SYSTEM 24-AUG-13 DEFAULT
SYSTEM SYSTEM 24-AUG-13 DEFAULT
OUTLN SYSTEM 24-AUG-13 DEFAULT
MGMT_VIEW SYSTEM 24-AUG-13 DEFAULT
APPQOSSYS SYSAUX 24-AUG-13 DEFAULT
WMSYS SYSAUX 24-AUG-13 DEFAULT
EXFSYS SYSAUX 24-AUG-13 DEFAULT
CTXSYS SYSAUX 24-AUG-13 DEFAULT
XDB SYSAUX 24-AUG-13 DEFAULT
ANONYMOUS SYSAUX 24-AUG-13 DEFAULT
ORDSYS SYSAUX 24-AUG-13 DEFAULT
USERNAME DEFAULT_TABLESP CREATED PROFILE
--------------- --------------- --------- ---------------
ORDDATA SYSAUX 24-AUG-13 DEFAULT
ORDPLUGINS SYSAUX 24-AUG-13 DEFAULT
SI_INFORMTN_SCH SYSAUX 24-AUG-13 DEFAULT
EMA
MDSYS SYSAUX 24-AUG-13 DEFAULT
OLAPSYS SYSAUX 24-AUG-13 DEFAULT
SYSMAN SYSAUX 24-AUG-13 DEFAULT
FLOWS_FILES SYSAUX 24-AUG-13 DEFAULT
APEX_030200 SYSAUX 24-AUG-13 DEFAULT
OWBSYS SYSAUX 24-AUG-13 DEFAULT
USERNAME DEFAULT_TABLESP CREATED PROFILE
--------------- --------------- --------- ---------------
OWBSYS_AUDIT SYSAUX 24-AUG-13 DEFAULT
DIP USERS 24-AUG-13 DEFAULT
ORACLE_OCM USERS 24-AUG-13 DEFAULT
XS$NULL USERS 24-AUG-13 DEFAULT
MDDATA USERS 24-AUG-13 DEFAULT
SPATIAL_WFS_ADM USERS 24-AUG-13 DEFAULT
IN_USR
SPATIAL_CSW_ADM USERS 24-AUG-13 DEFAULT
IN_USR
USERNAME DEFAULT_TABLESP CREATED PROFILE
--------------- --------------- --------- ---------------
APEX_PUBLIC_USE USERS 24-AUG-13 DEFAULT
R
SCOTT USERS 24-AUG-13 DEFAULT
HR USERS 30-AUG-16 DEFAULT
OE USERS 30-AUG-16 DEFAULT
IX USERS 30-AUG-16 DEFAULT
SH USERS 30-AUG-16 DEFAULT
PM USERS 30-AUG-16 DEFAULT
BI USERS 30-AUG-16 DEFAULT
DBSNMP SYSAUX 24-AUG-13 MONITORING_PROF
USERNAME DEFAULT_TABLESP CREATED PROFILE
--------------- --------------- --------- ---------------
ILE
SIEBEL TS_USERS 20-SEP-16 MY_PROFILE
37 rows selected.
查看已将用户SIEBEL的概要文件改为MY_ROFILE.
——修改SIEBEL用户密码:
SYS >alter user siebel identified by q1w2E#R$;
User
altered.
============补充概要文件===============================
一.概要文件作用
概要文件是口令限制和资源限制的命名集合。具有以下作用
a. 限制用户执行消耗资源过度的sql操作。
b. 自动断开空闲回话。
c. 在数据库系统中合理分配资源。
d. 控制用户口令的使用。
在建立数据库时,Oracle会自动建立default的概要文件,在口令与资源的限制均为unlimited,即未进行口令与资源的限制。
二.概要文件内容
1.口令策略参数
可以实现账户锁定,口令的过期,口令的复杂度等。有以下几个
a. failed_login_attempts:指定允许输入错误口令的次数,超过该次数账户将被锁定。
b. password_lock_time:指定账户被锁定的天数。(单位:天)
c. password_life_time:指定口令的有效期(单位:天)。如果达到有效期前用户还没有更换口令,口令将失效。必须由DBA重新设置新的口令。
d. password_grace_time:指定口令的宽限期(单位:天)。
e. password_reuse_time:指定能够重复使用一个口令前必须经过的时间(单位:天)。
f. password_reuse_max:指定在重复使用口令前必须对口令进行修改的次数。Password_reuse_time和password_reuse_max只能 设置一个,另一个必须为unlimited
g. password_verify_function:指定验证口令复杂度的函数。oracle提供了一个默认的口领校验函数,可以运行脚本$ORACLE_HOME/rdbms/admin/utlpwdmg.sql建立。
2.资源限制参数
利用概要文件,可以对以下系统资源进行限制
cpu时间,逻辑读,用户的并发会话数,空闲时间,连接时间,私有SGA区
a. cpu_per_session:限制每个参数所能使用的cpu时间。参数值为整数,单位百分之一秒。
b. session_per_user:限制每个用户所能使建立的最大并发会话数。
c. connect_time:限制每个会话所能连接到数据库的最大时间,超过这个时间,会话将自动断开,参数值为整数,单位为分钟。
d. idle_time:限制每个用户所允许的最长连续空闲时间,超过这个时间会话将自动断开,参数值整数,单位为分钟。
e. Logical_reads_per_session:限制每个会话所能读取的数据块数目。
f. Private_sga:每个会话分配的私有SGA区大小(以字节为单位),只对共享服务器模式有效。
g. Cpu_per_call:用于指定每条sql可占用的最大cpu时间,单位百分之一秒。
三.使用概要文件管理口令
概要文件管理口令由锁定账户、终止口令、口令历史以及口令校验等四种安全保护方式。概要文件中包含7个口令管理选项,如果仅指定某个或某几个选项,那么其他选项将自动使用default概要文件的相应选项值。
使用概要文件管理口令的步骤是:创建概要文件(create profile)--->设置相关口令参数(limit)--->把概要文件分配给用户。一般建立概要文件由DBA来完成,如果以其他用户身份建立,需要具有create profile权限。
case1(锁定账户):限制用户登录失败次数为3
create profile devp_lock limit
failed_login_attempts 3;
Profile created.
sys@ORCL> alter user scott profile devp_lock;
User altered.
连续三次登录失败后使用正确的密码登录:
sys@ORCL> conn scott/oracle;
ERROR:
ORA-28000: the account is locked
case2(终止口令):使用户口令具有生存期,口令在生存期之后会失效。
create profile devp_time limit
password_life_time 3;
Profile created.
sys@ORCL> alter user scott profile devp_time;
User altered.
case3(口令历史):通过核对新口令确保在指定时间或口令更改次数内不重复使用:
create profile devp_his limit
password_life_time 10
password_grace_time 2
password_reuse_time 10
password_reuse_max unlimited;
Profile created.
注意:password_reuse_time和password_reuse_max两个参数只能设置一个,另一个必须为unlimited.
概要文件分配给用户后,如果前11天没有修改用户口令,在第12天登录时,oracle会强制终止口令,并要求用户改变口令。但如果仍然使用过去的口令修改不能成功
case4(口令校验):使用口令校验函数来强制用户使用复杂的口令。
函数规范:
function_name(
userid_parameter IN VARCHAR2(30),
password_parameter IN VARCHAR2(30),
old_password_parameter IN VARCHAR2(30))
RETURNBOOLEA
userid_patameter对应于用户名,password_parameter对应于新口令,old_password_parameter对应于就口令。
可以通过运行$ORACLE_HOME/rdbms/admin/utlpwdmg.sql来建立默认的口令校验函数。
@utlpwdmg.sql
Function created.
Profile altered.
Function created.
create profile devp_verify limit
password_life_time 10
password_grace_time 2
password_verify_function verify_function;
Profile created.
四.使用概要文件管理资源
概要文件既可以限制整个会话的资源占用,也可以限制调用级(sql语句)的资源占用,要使用概要文件管理资源,必须要激活资源限制功能,通过设置初始化参数
RESOURCE_LIMIT为true实现:
alter system set resource_limit=true;
System altered.
使用概要文件管理资源与管理口令的步骤一样,都是先建立概要文件,设置相关的资源参数,再分配给用户。
1.限制会话资源:如果用户超过某一会话级资源限制,oracle将终止(回滚)当前执行的语句,并通知用户此会话超出资源限制。
此时,当前会话内已执行的语句不受资源限制的影响,用户中基恩能够执行commit,rollback,或断开连接,用户的其他所有操作
都将报错。当事务被提交或回滚后,用户在当前会话内也不能执行其他操作。
case1:数据库最多允许两个开发人员以scott用户登录进行操作,每个会话连接时间不能超过30Min,会话空闲时间不能超过10min.
[sql] view plain copy
在CODE上查看代码片派生到我的代码片
create profile devp_session limit
sessions_per_user 2
connect_time 30
idle_time 10;
Profile created.
管理员可以限制一个会话的空闲时间(idle time),如果会话内两次oracle调用的时间间隔达到限制值,当前事务将被回滚,会话被终止,所占用的资源也将被回收。此时是由pmon(进程监视器)对被终止的会话进行清理。同时,oracle不会不断的监控会话的空闲及连接时间,而是每隔数分钟检查一次,所以有可能在终止会话前,已经略微超出了限制时间。
2.限制调用资源
为了防止某个调用过度地使用系统资源,oracle允许管理员在调用级设置多种资源限制。如果用户超过了调用级资源限制,oracle将停止执行语句,并进行回滚,之后向用户报错,但会话内已执行的语句不受资源限制的影响,用户会话也将保持连接状态。
case1:
[sql] view plain copy
在CODE上查看代码片派生到我的代码片
create profile devp_call limit
cpu_per_call 200
logical_reads_per_call 3;
Profile created.
五.修改概要文件
1.修改
alter profile devp_call limit
sessions_per_user 2
failed_login_attempts 2
cpu_per_call 200;
Profile altered.
2.删除(如果概要文件已经分配给乐某个用户,必须使用cascade选项,用户也将恢复使用默认的default概要文件)
drop profile devp_call cascade;
Profile dropped.
六.查看概要文件信息
1.查询用户的概要文件
select profile from dba_users where username='SCOTT';
PROFILE
------------------------------
DEVP_SESSION
2.查看概要文件的内容
select * from dba_profiles where profile='DEVP_SESSION';