開発にはOracleを使用しています。データベースを再構築するために常に使用するブートストラップアカウントのパスワードが期限切れです。
このユーザー(および他のすべてのユーザー)のパスワードの有効期限を永久に無効にする方法
デフォルトでパスワードの有効期限が切れるOracle 11gを使用しています。
Oracleで特定のユーザープロファイルのパスワード有効期限ポリシーを変更するには、まずユーザーが使用しているプロファイルを確認します。
select profile from DBA_USERS where username = '<username>';
その後、次のようにして期限切れにならないように制限を変更できます。
alter profile <profile_name> limit password_life_time UNLIMITED;
以前に制限を確認したい場合は、次のようにします。
select resource_name,limit from dba_profiles where profile='<profile_name>';
development他のプロファイルが設定されていない場合、パスワードポリシーを無効にすることができます(つまり、デフォルトのパスワードの有効期限を無効にする)。
ALTER PROFILE "DEFAULT" LIMIT PASSWORD_VERIFY_FUNCTION NULL;
その後、パスワードをリセットしてユーザーアカウントのロックを解除します。二度と期限切れになることはありません。
alter user user_name identified by new_password account unlock;
他の回答者が述べているように、ユーザのプロファイル(例えば 'DEFAULT'プロファイル)を適切に変更すると、パスワードが設定されても期限切れになることはありません。
しかし、あるコメント投稿者が指摘しているように、プロファイルの古い値で設定されたパスワードはすでに期限切れになっている可能性があり、(プロファイルの指定された猶予期間が過ぎると)アカウントはロックされます。
ロックされたアカウントを持つ有効期限が切れたパスワード(回答のコメントで提供されている)の解決策は、ALTER USERコマンドの1つのバージョンを使用することです。
ALTER USER xyz_user ACCOUNT UNLOCK;
ただし、unlockコマンドは、アカウントが実際にロックされているアカウントに対してのみ機能しますが、猶予期間にあるアカウント、つまりパスワードは期限切れになっているがアカウントがまだロックされていないアカウントに対しては機能しません。これらのアカウントでは、パスワードを別のバージョンのALTER USERコマンドでリセットする必要があります。
ALTER USER xyz_user IDENTIFIED BY new_password;
以下は、特権ユーザー(ユーザー「SYS」など)がユーザーのパスワードをデータベースに格納されている現在の既存のハッシュ値にリセットするために使用できる、小さなSQL * Plusスクリプトです。
編集:古いバージョンのOracleは、パスワードまたはパスワードハッシュをpwordカラムに格納し、新しいバージョンのOracleは、パスワードハッシュをspare4カラムに格納します。以下のスクリプトは、pwordとspare4の列を収集するように変更されましたが、ユーザーのアカウントをリセットするためにspare4の列を使用するように変更されました。必要に応じて修正してください。
REM Tell SQL*Plus to show before and after versions of variable substitutions.
SET VERIFY ON
SHOW VERIFY
REM Tell SQL*Plus to use the ampersand '&' to indicate variables in substitution/expansion.
SET DEFINE '&'
SHOW DEFINE
REM Specify in a SQL*Plus variable the account to 'reset'.
REM Note that user names are case sensitive in recent versions of Oracle.
REM DEFINE USER_NAME = 'xyz_user'
REM Show the status of the account before reset.
SELECT
ACCOUNT_STATUS,
TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE,
TO_CHAR(EXPIRY_DATE, 'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE
FROM
DBA_USERS
WHERE
USERNAME = '&USER_NAME';
REM Create SQL*Plus variable to hold the existing values of the password and spare4 columns.
DEFINE OLD_SPARE4 = ""
DEFINE OLD_PASSWORD = ""
REM Tell SQL*Plus where to store the values to be selected with SQL.
REM Note that the password hash value is stored in spare4 column in recent versions of Oracle,
REM and in the password column in older versions of Oracle.
COLUMN SPARE4HASH NEW_VALUE OLD_SPARE4
COLUMN PWORDHASH NEW_VALUE OLD_PASSWORD
REM Select the old spare4 and password columns as delimited strings
SELECT
'''' || SPARE4 || '''' AS SPARE4HASH,
'''' || PASSWORD || '''' AS PWORDHASH
FROM
SYS.USER$
WHERE
NAME = '&USER_NAME';
REM Show the contents of the SQL*Plus variables
DEFINE OLD_SPARE4
DEFINE OLD_PASSWORD
REM Reset the password - Older versions of Oracle (e.g. Oracle 10g and older)
REM ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_PASSWORD;
REM Reset the password - Newer versions of Oracle (e.g. Oracle 11g and newer)
ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_SPARE4;
REM Show the status of the account after reset
SELECT
ACCOUNT_STATUS,
TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE,
TO_CHAR(EXPIRY_DATE, 'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE
FROM
DBA_USERS
WHERE
USERNAME = '&USER_NAME';
パスワードの有効期限をオフにすることは、データの機密性、整合性、および可用性に対する潜在的な脅威につながる可能性があるため、お勧めできません。
しかしあなたがそうしたいのなら。
適切なアクセス権がある場合は、以下のSQLを使用してください。
SELECTユーザ名、account_status FROM dba_users;
これはあなたにこのような結果を与えるはずです。
USERNAME ACCOUNT_STATUS
------------------------------ -----------------
SYSTEM OPEN
SYS OPEN
SDMADM OPEN
MARKETPLACE OPEN
SCHEMAOWNER OPEN
ANONYMOUS OPEN
SCHEMAOWNER2 OPEN
SDMADM2 OPEN
SCHEMAOWNER1 OPEN
SDMADM1 OPEN
HR EXPIRED(GRACE)
USERNAME ACCOUNT_STATUS
------------------------------ -----------------
APEX_PUBLIC_USER LOCKED
APEX_040000 LOCKED
FLOWS_FILES LOCKED
XS$NULL EXPIRED & LOCKED
OUTLN EXPIRED & LOCKED
XDB EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
今、あなたはPedroCarriço答えを使うことができます https://stackoverflow.com/a/6777079/2432468