「Oracle Database10g データベースのセキュリティ」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Oracle Database10g データベースのセキュリティ== [Oracle][Oracle Database10g] ===管理権限の制限=== ====必要ないユーザーにDBAロールが…」) |
|||
1行目: | 1行目: | ||
==Oracle Database10g データベースのセキュリティ== | ==Oracle Database10g データベースのセキュリティ== | ||
− | [Oracle][Oracle Database10g] | + | [[Oracle][Oracle Database10g]] |
===管理権限の制限=== | ===管理権限の制限=== | ||
====必要ないユーザーにDBAロールが付与されていないか確認==== | ====必要ないユーザーにDBAロールが付与されていないか確認==== | ||
*DBA_ROLE_PRIVSを検索を検索して確認 | *DBA_ROLE_PRIVSを検索を検索して確認 | ||
− | SQL | + | SQL> select * from dba_role_privs |
2 where granted_role = 'DBA' | 2 where granted_role = 'DBA' | ||
3 / | 3 / | ||
16行目: | 16行目: | ||
====SYSDBA、SYSOPER 権限をもつユーザを確認==== | ====SYSDBA、SYSOPER 権限をもつユーザを確認==== | ||
*V$PWFILE_USERSを検索 | *V$PWFILE_USERSを検索 | ||
− | SQL | + | SQL> select * from v$pwfile_users; |
USERNAME SYSDBA SYSOPER | USERNAME SYSDBA SYSOPER | ||
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>O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。</blockquote> | |
===PUBLICユーザーの権限管理=== | ===PUBLICユーザーの権限管理=== | ||
97行目: | 97行目: | ||
=====試してみる===== | =====試してみる===== | ||
でたらめなパスワードで接続 | でたらめなパスワードで接続 | ||
− | SQL | + | SQL> conn exam2/xxxxx@oradb1; |
ERROR: | ERROR: | ||
ORA-01017: invalid username/password; logon denied | ORA-01017: invalid username/password; logon denied | ||
正しいパスワードで接続 | 正しいパスワードで接続 | ||
− | SQL | + | SQL> conn exam2/abc123@oradb1; |
ERROR: | ERROR: | ||
ORA-28000: the account is locked | ORA-28000: the account is locked | ||
ロックされている | ロックされている |
2020年2月15日 (土) 08:04時点における版
目次
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
データディクショナリの保護
- システム権限は非常に強力であるため、通常のユーザー(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 矢木浩人