| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Oracle Database10g データベースのセキュリティ」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==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> select * from dba_role_privs
+
  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> select * from v$pwfile_users;
+
  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>
+
&lt;blockquote&gt;O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。&lt;/blockquote&gt;
  
 
===PUBLICユーザーの権限管理===
 
===PUBLICユーザーの権限管理===
97行目: 97行目:
 
=====試してみる=====
 
=====試してみる=====
 
でたらめなパスワードで接続
 
でたらめなパスワードで接続
  SQL> conn exam2/xxxxx@oradb1;
+
  SQL&gt; conn exam2/xxxxx@oradb1;
 
  ERROR:
 
  ERROR:
 
  ORA-01017: invalid username/password; logon denied
 
  ORA-01017: invalid username/password; logon denied
  
 
正しいパスワードで接続
 
正しいパスワードで接続
  SQL> conn exam2/abc123@oradb1;
+
  SQL&gt; 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

データディクショナリの保護

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初期化パラメータは必ずFALSE(デフォルト値)に設定

<blockquote>O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。</blockquote>

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ファンクション
作成

0913 ora profile01.jpg

パラメータの設定

0914 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

ユーザにプロファイルを設定

設定

0915 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

ロックされている