Oracle Database10g データベースのセキュリティ
ナビゲーションに移動
検索に移動
Oracle Database10g データベースのセキュリティ
管理権限の制限
必要ないユーザーにDBAロールが付与されていないか確認
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
データディクショナリの保護
- システム権限は非常に強力であるため、通常のユーザー(DBA以外のユーザー)がデータ・ディクショナリに対してANYシステム権限(UPDATE ANY TABLEなど)を行使できないようにデータベースを構成する。
- データ・ディクショナリを保護するために、O7_DICTIONARY_ACCESSIBILITY初期化パラメータは必ずFALSE(デフォルト値)に設定
<blockquote>O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。</blockquote>
PUBLICユーザーの権限管理
- 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ファンクション |
作成
パラメータの設定
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
ユーザにプロファイルを設定
設定
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
ロックされている
© 2006 矢木浩人