トップ 一覧 ping 検索 ヘルプ RSS ログイン

Oracle Database10g データベースのセキュリティの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!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"
 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

ロックされている