一、、数据库密码使用期限一般是180天,过一段时间会出现密码过期的状况,,怎样才能使得密码永不过期

1、首先查看用户的profile是哪个,一般是default

SQL> SELECT username,PROFILE FROM dba_users;


USERNAME       PROFILE

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

OGG       DEFAULT

GGTEST       DEFAULT

GISDATA       DEFAULT

DPAP       DEFAULT

PDA       DEFAULT

STV       DEFAULT

STL       DEFAULT

TFR       DEFAULT

PKP       DEFAULT

BSE       DEFAULT

SQLSH       DEFAULT

2、查看概要文件(如default)密码有效期设置

SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';


PROFILE       RESOURCE_NAME RESOURCE

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

LIMIT

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

DEFAULT       PASSWORD_LIFE_TIME PASSWORD

180

3、把默认的180天设置为无限期

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;


Profile altered.

4、再次查看密码有效期

SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';


PROFILE       RESOURCE_NAME RESOURCE

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

LIMIT

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

DEFAULT       PASSWORD_LIFE_TIME PASSWORD

UNLIMITED

5、有的用户名可能在修改前就过期了,需要重新更改一下代码

[root@fossdb listener]# su - oracle

[oracle@fossdb ~]$ sqlplus / as sysdba

SQL>alter user pkp identified by pkp;密码用原来的密码就好

二、ORA:28000账号被锁定处理


1、首先查看用户的profile是哪个,一般是default

SQL> SELECT username,PROFILE FROM dba_users;


USERNAME        PROFILE

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

OGG        DEFAULT

GGTEST        DEFAULT

GISDATA         DEFAULT

DPAP        DEFAULT

PDA        DEFAULT

STV        DEFAULT

STL        DEFAULT

TFR        DEFAULT

2、查看登录次数限制

SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';


PROFILE       RESOURCE_NAME RESOURCE

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

LIMIT

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

DEFAULT       FAILED_LOGIN_ATTEMPTS PASSWORD

10

3、把尝试登陆失败次数由10次改为无限制

sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

4、修改后,还没有被提示ORA-28000警告的用户不会再碰到同样的提示;


    已经被锁定的帐户必须解除锁定,举例如下:


    $sqlplus / as sysdba


    sql> alter user smsc identified by oracle account unlock;

 5、修改后default profile应该如下:


    sql> select * from dba_profiles WHERE dba_profiles.profile='DEFAULT';


    PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT


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


    DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED


    DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED


    修改之后不需要重启动数据库,会立即生效。

如果出现ORA-28000 the account is locked.错误

alter user 用户名 account unlock;