!!!Oracle Database10g データベースのセキュリティ [Oracle][Oracle Database10g] !!管理権限の制限 !必要ないユーザーにDBAロールが付与されていないか確認 *DBA_ROLE_PRIVSを検索を検索して確認 SQL> select * from dba_role_privs 2 where granted_role = 'DBA' 3 / GRANTEE GRANTED_ROLE ADM DEF ------------------------------ ------------------------------ --- --- SYS DBA YES YES SYSMAN DBA NO YES SYSTEM DBA YES YES !SYSDBA、SYSOPER 権限をもつユーザを確認 *V$PWFILE_USERSを検索 SQL> select * from v$pwfile_users; USERNAME SYSDBA SYSOPER --------------------------------------------- ---------- ---------- SYS TRUE TRUE !!データディクショナリの保護 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/network.102/B19269-04/admusers.htm#609631 *システム権限は非常に強力であるため、通常のユーザー(DBA以外のユーザー)がデータ・ディクショナリに対してANYシステム権限(UPDATE ANY TABLEなど)を行使できないようにデータベースを構成する。 *データ・ディクショナリを保護するために、[O7_DICTIONARY_ACCESSIBILITY|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/initparams.htm#85701]初期化パラメータは必ずFALSE(デフォルト値)に設定 ""O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。 !!PUBLICユーザーの権限管理 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/network.102/B19269-04/admusers.htm#610947 *PUBLICユーザーはすべてのユーザーに影響を与えるために用意されている *PUBLICユーザーに権限を付与すると、すべてのユーザがその権限を利用可能になる !!パスワードセキュリティ !プロファイルの作成 ,パラメータ,内容 ,PASSWORD_LIFE_TIME,失効するまでの有効期間 ,PASSWORD_GRACE_TIME,失効後、最初にログインした後からパスワードを変更できる猶予期間 ,PASSWORD_REUSE_MAX,再使用できるようになるまで必要な変更回数 ,PASSWORD_REUSE_TIME,再使用できるようになるまでの期間 ,PASSWORD_LOCK_TIME,ログインを指定回数以上失敗した後、ロックされる期間 ,FAILED_LOGIN_ATTEMPTS,アカウントがロックされるまでのログイン失敗回数 ,PASSWORD_VERIFY_FUNCTION,パスワード複雑さを評価するPL/SQLファンクション ::作成 {{ref_image ora_profile01.jpg}} ::パラメータの設定 {{ref_image ora_profile02.jpg}} ::SQL CREATE PROFILE "STRICT_PASSWD" LIMIT CPU_PER_SESSION DEFAULT CPU_PER_CALL DEFAULT CONNECT_TIME DEFAULT IDLE_TIME DEFAULT SESSIONS_PER_USER DEFAULT LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL DEFAULT PRIVATE_SGA DEFAULT COMPOSITE_LIMIT DEFAULT PASSWORD_LIFE_TIME 1 PASSWORD_GRACE_TIME 1 PASSWORD_REUSE_MAX 1 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_LOCK_TIME 1 FAILED_LOGIN_ATTEMPTS 1 PASSWORD_VERIFY_FUNCTION DEFAULT !ユーザにプロファイルを設定 ::設定 {{ref_image ora_profile03.jpg}} ::SQL ALTER USER "EXAM2" PROFILE "STRICT_PASSWD" ::試してみる でたらめなパスワードで接続 SQL> conn exam2/xxxxx@oradb1; ERROR: ORA-01017: invalid username/password; logon denied 正しいパスワードで接続 SQL> conn exam2/abc123@oradb1; ERROR: ORA-28000: the account is locked ロックされている