なぜか取引先データベース(Oracle DB)のユーザーアカウント状況について確認しなければならなくなったので……同じような状況になった時用にメモ。いや……なんで開発/保守環境のデータベース管理やってる人がいないのよ……。
ユーザー情報テーブル DBA_USERS
列構成は下記の通り。
- AUTHENTICATION_TYPE
- LAST_LOGIN
- EDITIONS_ENABLED
- USER_ID
- COMMON
- ORACLE_MAINTAINED
- PROXY_ONLY_CONNECT
- PASSWORD
- EXTERNAL_NAME
- PASSWORD_VERSIONS
- TEMPORARY_TABLESPACE
- EXPIRY_DATE
- PROFILE
- INTIAL_RSRC_CONSUMER_GROUP
- DEFAULT_TABLESPACE
- CREATED
- USERNAME
- ACCOUNT_STATUS …… OPEN/LOCKED/EXPIRED & LOCKED
- LOCK_DATE
アカウント有効期限の昇順で情報を取得する
ツールの利用が制限された環境でSQL*Plusしか使えないので、適当にフォーマットを整えながら、ファイルに結果をspoolしつつ下記のSQLで情報収集。
set linesize 120;
set pagesize 1000;
column user_id format a20;
select user_id, account_status, expiry_date from dba_users order by expiry_date, username;