【概要文件】的测试

    概要文件是一组命名的强行对数据库用法和实例资源设置的资源限制条件。通过概要文件还可管理帐户状态并设置对用户口令的限制(长度、失效时间等)。每个用户都分配一个概要文件,而且该用户在指定时间只属于一个概要文件。如果用户在您更改用户概要文件时已经登录,那么所做更改只在用户下一次登录后才生效。 
概要文件在创建用户的时候指定,往往都用default值,或者干脆就不指定,默认使用default。

概要文件中的参数如下:
sessions_per_user:一个用户允许同时(并发)会话的总数,超过后系统禁止该用户的后续会话,并返回错误:ORA-02391exceededsimultaneousSESSIONS_PER_USERlimit
cpu_per_session:定义了一个SESSION占用的CPU的时间(1/100秒),当达到这个限制用户不能在此会话中执行任何操作,此时必须先断开连接,再连接才行。
cpu_per_call:限制每次调用SQL语句期间(parse、execute、fetch)可用的CPU时间总量,单位是百分之一秒。达到限制时语句以报错结束。不同于CPU_PER_SESSION的是,没达到CPU_PER_SESSION限制,还可以进行新的查询。
connect_time:一个连接会话的最长连接时间(分钟),当用户会话时间超过CONNECT_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
idle_time:一个连接会话的最长连接时间,当用户空闲时间超过IDLE_TIME指定的时间,Oracle将回滚当前事务,并且结束他的会话
logical_reads_per_session:一个会话允许读写的逻辑块的数量限制
logical_reads_per_call:一次调用的SQL期间,允许读数据库块数限制
composite_limit:一个会话的资源成本限制
private_sga:一个会话允许分配的最大SGA大小,使用K/M定义
failed_login_attempts10:登录几次错误后用户锁定
password_life_time:口令的有效期(天),默认为UNLIMITED
password_reuse_time:口令被修改后原有口令隔多少天被重新使用,默认为UNLIMITED
password_reuse_max:口令被修改后原有口令被修改多少次才允许被重新使用。
password_lock_time:帐户因FAILED_LOGIN_ATTEMPTS锁定时,加锁天数
password_grace_time:口令修改的宽限期(天)
password_verify_functionNull:口令效验函数

在创建自己的概要文件的时候,不必要把所有的参数都写上,只写上你要做的,比如我只想密码输入几次后,账户锁定,其他的用默认值,那么你只需要在创建概要文件的时候,将password_life_time参数指定即可,其他的参数均采用默认值。

一、测试密码错误输入三次后,锁定用户,2分钟后自动解锁

1)创建一个概要文件,其中参数为密码输入三次账户锁定2分钟后自动解除

SYS@ORA11GR2>create profile pro_fpwd limit

 failed_login_attempts 3

 password_lock_time 2/1440;

 

Profile created.

 

SYS@ORA11GR2>


2)创建测试用户xxf,密码xxf

SYS@ORA11GR2>create user xxf identified by xxf profile pro_fpwd;

 

User created.

 

SYS@ORA11GR2>


3)xxf用户dba角色

SYS@ORA11GR2>grant dba to xxf;

 

Grant succeeded.

 

SYS@ORA11GR2>


4)查询一下xxf用户使用的概要文件的情况

SYS@ORA11GR2>select d.resource_name, d.resource_type, d.limit, d.profile

  from dba_profiles d, dba_users t

 where d.profile = t.profile

   and t.username = upper('&username');

Enter value for username: xxf

old   4:    and t.username = upper('&username')

new   4:    and t.username = upper('xxf')

 

RESOURCE_NAME                  RESOURCE_TYPE   LIMIT      PROFILE

------------------------------ --------------- ---------- ----------

FAILED_LOGIN_ATTEMPTS          PASSWORD        3          PRO_FPWD

PASSWORD_LOCK_TIME             PASSWORD        .0013      PRO_FPWD

PASSWORD_GRACE_TIME            PASSWORD        DEFAULT    PRO_FPWD

PASSWORD_VERIFY_FUNCTION       PASSWORD        DEFAULT    PRO_FPWD

PASSWORD_REUSE_MAX             PASSWORD        DEFAULT    PRO_FPWD

PASSWORD_REUSE_TIME            PASSWORD        DEFAULT    PRO_FPWD

PASSWORD_LIFE_TIME             PASSWORD        DEFAULT    PRO_FPWD

PRIVATE_SGA                    KERNEL          DEFAULT    PRO_FPWD

CONNECT_TIME                   KERNEL          DEFAULT    PRO_FPWD

IDLE_TIME                      KERNEL          DEFAULT    PRO_FPWD

LOGICAL_READS_PER_CALL         KERNEL          DEFAULT    PRO_FPWD

LOGICAL_READS_PER_SESSION      KERNEL          DEFAULT    PRO_FPWD

CPU_PER_CALL                   KERNEL          DEFAULT    PRO_FPWD

CPU_PER_SESSION                KERNEL          DEFAULT    PRO_FPWD

SESSIONS_PER_USER              KERNEL          DEFAULT    PRO_FPWD

COMPOSITE_LIMIT                KERNEL          DEFAULT    PRO_FPWD

 

16 rows selected.

 

SYS@ORA11GR2>


5) 测试输入三次错误密码锁账户

SYS@ORA11GR2>set time on

21:59:38 SYS@ORA11GR2>conn xxf/xxf123

ERROR:

ORA-01017: invalid username/password; logon denied

 

Warning: You are no longer connected to ORACLE.

21:59:43 @>conn xxf/xxf123

ERROR:

ORA-01017: invalid username/password; logon denied

 

21:59:47 @>conn xxf/xxf123

ERROR:

ORA-01017: invalid username/password; logon denied

 

21:59:51 @>conn xxf/xxf

ERROR:

ORA-28000: the account is locked


21:59:56 @>

22:00:38 @>

22:01:01 @>

22:01:12 @>conn xxf/xxf

ERROR:

ORA-28000: the account is locked

 

22:01:15 @>

22:01:26 @>


6)两分钟后自动解锁,连接成功

22:01:56 @>conn xxf/xxf

Connected.

22:02:02 XXF@ORA11GR2>




二、密码复杂度的校验


1)修改概要文件参数password_verify_function,使用verify_function函数来做密码复杂度的控制

SYS@ORA11GR2>alter profile PRO_FPWD limit password_verify_function verify_function;

alter profile PRO_FPWD limit password_verify_function verify_function

*

ERROR at line 1:

ORA-07443: function VERIFY_FUNCTION not found

 

 

SYS@ORA11GR2>


2)报错,说没有发现VERIFY_FUNCTION,看来11g默认情况下,这个函数没有创建(我印象中10g默认情况下是有这个函数的),我们手工创建一下

SYS@ORA11GR2>@?/rdbms/admin/utlpwdmg.sql

 

Function created.

 

 

Profile altered.

 

 

Function created.

 

SYS@ORA11GR2>


3)再次修改概要文件,增加密码复杂度的验证

SYS@ORA11GR2>alter profile PRO_FPWD limit password_verify_function verify_function;

 

Profile altered.

 

SYS@ORA11GR2>


4)查看xxf用户所用的概要文件的情况,密码复杂度的函数已经应用,这个函数只有在创建用户或者修改密码的时候才有用,对已存在的用户的密码不做校验。

SYS@ORA11GR2>select d.resource_name, d.resource_type, d.limit, d.profile

  from dba_profiles d, dba_users t

 where d.profile = t.profile

   and t.username = upper('&username');  2    3    4

Enter value for username: xxf

old   4:    and t.username = upper('&username')

new   4:    and t.username = upper('xxf')

 

RESOURCE_NAME                  RESOURCE_TYPE   LIMIT           PROFILE

------------------------------ --------------- --------------- ----------

COMPOSITE_LIMIT                KERNEL          DEFAULT         PRO_FPWD

SESSIONS_PER_USER              KERNEL          DEFAULT         PRO_FPWD

CPU_PER_SESSION                KERNEL          DEFAULT         PRO_FPWD

CPU_PER_CALL                   KERNEL          DEFAULT         PRO_FPWD

LOGICAL_READS_PER_SESSION      KERNEL          DEFAULT         PRO_FPWD

LOGICAL_READS_PER_CALL         KERNEL          DEFAULT         PRO_FPWD

IDLE_TIME                      KERNEL          DEFAULT         PRO_FPWD

CONNECT_TIME                   KERNEL          DEFAULT         PRO_FPWD

PRIVATE_SGA                    KERNEL          DEFAULT         PRO_FPWD

FAILED_LOGIN_ATTEMPTS          PASSWORD        3               PRO_FPWD

PASSWORD_LIFE_TIME             PASSWORD        DEFAULT         PRO_FPWD

PASSWORD_REUSE_TIME            PASSWORD        DEFAULT         PRO_FPWD

PASSWORD_REUSE_MAX             PASSWORD        DEFAULT         PRO_FPWD

PASSWORD_VERIFY_FUNCTION       PASSWORD        VERIFY_FUNCTION PRO_FPWD

PASSWORD_LOCK_TIME             PASSWORD        .0013           PRO_FPWD

PASSWORD_GRACE_TIME            PASSWORD        DEFAULT         PRO_FPWD

 

16 rows selected.

 

SYS@ORA11GR2>


5)修改xxf用户的密码为xxfa,提示密码需要字母、数字和特殊字符

XXF@ORA11GR2>alter user xxf identified by xxfa;

alter user xxf identified by xxfa

*

ERROR at line 1:

ORA-28003: password verification for the specified password failed

ORA-20003: Password should contain at least one digit, one character and one

punctuation

 

XXF@ORA11GR2>


6)修改xxf用户的密码为x1#,提示,密码长度不能小于4

XXF@ORA11GR2>alter user xxf identified by x1#;

alter user xxf identified by x1#

*

ERROR at line 1:

ORA-28003: password verification for the specified password failed

ORA-20002: Password length less than 4

 

XXF@ORA11GR2>


7)修改xxf用户的密码为x1#a,修改成功

XXF@ORA11GR2>alter user xxf identified by x1#a;

 

User altered.

 

XXF@ORA11GR2>


小结:

在生产库中,这些校验及限制还是必要的。

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

转载于:http://blog.itpub.net/685769/viewspace-744777/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值