Oracleのディフォルトユーザーなどの利用していないアカウントを無効にして権限の確認。

■ CREATE SESSION出来ないように設定

SQL> REVOKE CONNECT FROM DBSNMP;

取消しが成功しました。

SQL> SELECT USERNAME, PROFILE, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = ‘DBSNMP’;

USERNAME PROFILE ACCOUNT_STATUS
—————————— —————————— ——————————–
DBSNMP DEFAULT OPEN

■ アカウントの無効化

SQL> ALTER USER DBSNMP ACCOUNT LOCK PASSWORD EXPIRE;

ユーザーが変更されました。

■ アカウントがOPENになって無い事を確認

SQL> SELECT USERNAME, PROFILE, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = ‘DBSNMP’;

USERNAME PROFILE ACCOUNT_STATUS
—————————— —————————— ——————————–
DBSNMP DEFAULT EXPIRED & LOCKED

■ 権限の確認

SQL> SELECT LPAD(‘ ‘, 2*level) || granted_role “USER PRIVS”
2 FROM (
3 SELECT NULL grantee, username granted_role
4 FROM dba_users
5 WHERE username LIKE UPPER(‘DBSNMP’)
6 UNION
7 SELECT grantee, granted_role
8 FROM dba_role_privs
9 UNION
10 SELECT grantee, privilege
11 FROM dba_sys_privs)
12 START WITH grantee IS NULL
13 CONNECT BY grantee = prior granted_role;

USER PRIVS
—————————————————————————————————-
DBSNMP
SELECT ANY DICTIONARY

SQL>