10g中的Profile 主要是对数据库连接对象的资源起到限制的作用,修改密码前先确认限制状况。
先查看下Profile的维护表DBA_PROFILES,该表还算简单就4个字段
PROFILE 用户管理名
RESOURCE_NAME 资源名
RESOURCE_TYPE 资源类型
LIMIT 限制
PROFILE RESOURCE_NAME RESOURCE LIMIT
---------- ------------------------- -------- --------------------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
PROFILE RESOURCE_NAME RESOURCE LIMIT
---------- ------------------------- -------- --------------------
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD SFDB_PASSWD_COMPLEX
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
FAILED_LOGIN_ATTEMPTS 限制的默认情况为10次,但是修改密码后,应用端反复尝试通过错误的密码连接数据库,可能会导致用户的锁定。
因此,将该限制修改为unlimited的:
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited
修改完成后再次确认该参数的限制后,开始修改数据库的密码,数据库密码的策略须符合几个原则:
1、必须由数字、字符和特殊字符中的任意两者以上组成
2、至少8位
3、Oracle保留字符不可用
10G的密码不区分大小写,以下是针对普通用户的密码修改方式:修改sys用户的密码需要通过修改密码文件来使其生效:
alter user user_name identified by new_password;
SYS用户的密码修改命令如下:
Usage: orapwd file= password= entries= force= nosysdba=
密码文件路径及命名方式:
$ORACLE_HOME/dbs/
orapw+实例名
而11G之后进行了改进,可以统一通过alter语句进行用户密码的修改,并且11G区分大小写。