【用户概要文件】创建用户概要文件

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:
       1、所有的用户创建时都会被指定这个PROFILE
            2、DEFAULT PROFILE的内容为空,无限制


PROFILE的管理(资源文件)当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE  
 
    可以使用如下命令来启动当前资源限制:
      alter system set RESOURCE_LIMIT=true;
          当需要以后启动时也启动限制,必须在init.ora中设置
          RESOURCE_LIMIT=true


PROFILE的口令机制限制: 限制生效的前提:                  
        
  A、RESOURCE_LIMIT:=TRUE
                  B、ORACLE\RDBMS\ADMIN\UTLPWDMG.SQL


任务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';



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31397003/viewspace-2126944/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31397003/viewspace-2126944/

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值