「Oracle Database10g データベースのセキュリティ」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ==Oracle Database10g データベースのセキュリティ== | + | ==[[Oracle Database10g データベースのセキュリティ]]== |
[[Oracle]] | [[Oracle Database10g]] | | [[Oracle]] | [[Oracle Database10g]] | | ||
===管理権限の制限=== | ===管理権限の制限=== | ||
====必要ないユーザーにDBAロールが付与されていないか確認==== | ====必要ないユーザーにDBAロールが付与されていないか確認==== | ||
− | * | + | *DBA_[[R]]OLE_P[[R]]IVSを検索を検索して確認 |
− | SQL> select * from dba_role_privs | + | [[SQL]]> select * from dba_role_privs |
2 where granted_role = 'DBA' | 2 where granted_role = 'DBA' | ||
3 / | 3 / | ||
− | + | GR[[ANT]]EE GR[[ANT]]ED_ROLE ADM DEF | |
------------------------------ ------------------------------ --- --- | ------------------------------ ------------------------------ --- --- | ||
SYS DBA YES YES | SYS DBA YES YES | ||
14行目: | 14行目: | ||
SYSTEM DBA YES YES | SYSTEM DBA YES YES | ||
− | ==== | + | ====SYSDBA、SYSOPE[[R]] 権限をもつユーザを確認==== |
− | *V$ | + | *V$PWFILE_USE[[R]]Sを検索 |
− | SQL> select * from v$pwfile_users; | + | [[SQL]]> select * from v$pwfile_users; |
− | + | USE[[R]]NAME SYSDBA SYSOPE[[R]] | |
--------------------------------------------- ---------- ---------- | --------------------------------------------- ---------- ---------- | ||
− | SYS | + | SYS T[[R]]UE T[[R]]UE |
===データディクショナリの保護=== | ===データディクショナリの保護=== | ||
28行目: | 28行目: | ||
*データ・ディクショナリを保護するために、[http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/initparams.htm#85701 O7_DICTIONARY_ACCESSIBILITY]初期化パラメータは必ずFALSE(デフォルト値)に設定 | *データ・ディクショナリを保護するために、[http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/initparams.htm#85701 O7_DICTIONARY_ACCESSIBILITY]初期化パラメータは必ずFALSE(デフォルト値)に設定 | ||
− | <blockquote> | + | <blockquote>O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます([[Oracle]]7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。</blockquote> |
===PUBLICユーザーの権限管理=== | ===PUBLICユーザーの権限管理=== | ||
42行目: | 42行目: | ||
!内容 | !内容 | ||
|- | |- | ||
− | | | + | |PASSWO[[R]]D_LIFE_TIME |
|失効するまでの有効期間 | |失効するまでの有効期間 | ||
|- | |- | ||
− | | | + | |PASSWO[[R]]D_G[[R]]ACE_TIME |
|失効後、最初にログインした後からパスワードを変更できる猶予期間 | |失効後、最初にログインした後からパスワードを変更できる猶予期間 | ||
|- | |- | ||
− | | | + | |PASSWO[[R]]D_[[R]]EUSE_MAX |
|再使用できるようになるまで必要な変更回数 | |再使用できるようになるまで必要な変更回数 | ||
|- | |- | ||
− | | | + | |PASSWO[[R]]D_[[R]]EUSE_TIME |
|再使用できるようになるまでの期間 | |再使用できるようになるまでの期間 | ||
|- | |- | ||
− | | | + | |PASSWO[[R]]D_LOCK_TIME |
|ログインを指定回数以上失敗した後、ロックされる期間 | |ログインを指定回数以上失敗した後、ロックされる期間 | ||
|- | |- | ||
61行目: | 61行目: | ||
|- | |- | ||
|PASSWORD_VERIFY_FUNCTION | |PASSWORD_VERIFY_FUNCTION | ||
− | |パスワード複雑さを評価するPL/ | + | |パスワード複雑さを評価するPL/[[SQL]]ファンクション |
|- | |- | ||
|} | |} | ||
69行目: | 69行目: | ||
=====パラメータの設定===== | =====パラメータの設定===== | ||
[[File:0914_ora_profile02.jpg]] | [[File:0914_ora_profile02.jpg]] | ||
− | =====SQL===== | + | =====[[SQL]]===== |
− | + | C[[R]]EATE P[[R]]OFILE "ST[[R]]ICT_PASSWD" LIMIT CPU_PE[[R]]_SESSION DEFAULT | |
− | + | CPU_PE[[R]]_CALL DEFAULT | |
CONNECT_TIME DEFAULT | CONNECT_TIME DEFAULT | ||
IDLE_TIME DEFAULT | IDLE_TIME DEFAULT | ||
− | + | SESSIONS_PE[[R]]_USE[[R]] DEFAULT | |
− | + | LOGICAL_[[R]]EADS_PE[[R]]_SESSION DEFAULT | |
− | + | LOGICAL_[[R]]EADS_PE[[R]]_CALL DEFAULT | |
− | + | P[[R]]IVATE_SGA DEFAULT | |
− | + | [[COM]]POSITE_LIMIT DEFAULT | |
− | + | PASSWO[[R]]D_LIFE_TIME 1 | |
− | + | PASSWO[[R]]D_G[[R]]ACE_TIME 1 | |
− | + | PASSWO[[R]]D_[[R]]EUSE_MAX 1 | |
− | + | PASSWO[[R]]D_[[R]]EUSE_TIME UNLIMITED | |
− | + | PASSWO[[R]]D_LOCK_TIME 1 | |
FAILED_LOGIN_ATTEMPTS 1 | FAILED_LOGIN_ATTEMPTS 1 | ||
− | + | PASSWO[[R]]D_VE[[R]]IFY_FUNCTION DEFAULT | |
====ユーザにプロファイルを設定==== | ====ユーザにプロファイルを設定==== | ||
92行目: | 92行目: | ||
[[File:0915_ora_profile03.jpg]] | [[File:0915_ora_profile03.jpg]] | ||
− | =====SQL===== | + | =====[[SQL]]===== |
− | + | ALTE[[R]] USE[[R]] "EXAM2" P[[R]]OFILE "ST[[R]]ICT_PASSWD" | |
=====試してみる===== | =====試してみる===== | ||
でたらめなパスワードで接続 | でたらめなパスワードで接続 | ||
− | SQL> conn exam2/xxxxx@oradb1; | + | [[SQL]]> conn exam2/xxxxx@oradb1; |
− | + | E[[R]][[R]]O[[R]]: | |
− | + | O[[R]]A-01017: invalid username/password; logon denied | |
正しいパスワードで接続 | 正しいパスワードで接続 | ||
− | SQL> conn exam2/abc123@oradb1; | + | [[SQL]]> conn exam2/abc123@oradb1; |
− | + | E[[R]][[R]]O[[R]]: | |
− | + | O[[R]]A-28000: the account is locked | |
ロックされている | ロックされている |
2020年2月16日 (日) 04:30時点における最新版
目次
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 矢木浩人