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

MyMemoWiki

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

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==Oracle Database10g データベースのセキュリティ== [Oracle][Oracle Database10g] ===管理権限の制限=== ====必要ないユーザーにDBAロールが…」)
 
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
==Oracle Database10g データベースのセキュリティ==
+
==[[Oracle Database10g データベースのセキュリティ]]==
[Oracle][Oracle Database10g]
+
[[Oracle]] | [[Oracle Database10g]] |
 
===管理権限の制限===
 
===管理権限の制限===
 
====必要ないユーザーにDBAロールが付与されていないか確認====
 
====必要ないユーザーにDBAロールが付与されていないか確認====
*DBA_ROLE_PRIVSを検索を検索して確認
+
*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  /
 
   
 
   
  GRANTEE                       GRANTED_ROLE                   ADM DEF
+
  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、SYSOPER 権限をもつユーザを確認====
+
====SYSDBA、SYSOPE[[R]] 権限をもつユーザを確認====
*V$PWFILE_USERSを検索
+
*V$PWFILE_USE[[R]]Sを検索
  SQL> select * from v$pwfile_users;
+
  [[SQL]]> select * from v$pwfile_users;
 
   
 
   
  USERNAME                                     SYSDBA    SYSOPER
+
  USE[[R]]NAME                                     SYSDBA    SYSOPE[[R]]
 
  --------------------------------------------- ---------- ----------
 
  --------------------------------------------- ---------- ----------
  SYS                                          TRUE       TRUE
+
  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>O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます(Oracle7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。</blockquote>
+
&lt;blockquote&gt;O7_DICTIONARY_ACCESSIBILITYは、SYSTEM権限の制限を制御します。このパラメータにtrueを設定すると、SYSTEM権限によるSYSスキーマ内のオブジェクトへのアクセスが許可されます([[Oracle]]7の動作)。falseに設定すると、すべてのスキーマ内のオブジェクトへのアクセスが許可されるSYSTEM権限では、SYSスキーマ内のオブジェクトへアクセスできなくなります。&lt;/blockquote&gt;
  
 
===PUBLICユーザーの権限管理===
 
===PUBLICユーザーの権限管理===
42行目: 42行目:
 
!内容
 
!内容
 
|-
 
|-
|PASSWORD_LIFE_TIME
+
|PASSWO[[R]]D_LIFE_TIME
 
|失効するまでの有効期間
 
|失効するまでの有効期間
 
|-
 
|-
|PASSWORD_GRACE_TIME
+
|PASSWO[[R]]D_G[[R]]ACE_TIME
 
|失効後、最初にログインした後からパスワードを変更できる猶予期間
 
|失効後、最初にログインした後からパスワードを変更できる猶予期間
 
|-
 
|-
|PASSWORD_REUSE_MAX
+
|PASSWO[[R]]D_[[R]]EUSE_MAX
 
|再使用できるようになるまで必要な変更回数
 
|再使用できるようになるまで必要な変更回数
 
|-
 
|-
|PASSWORD_REUSE_TIME
+
|PASSWO[[R]]D_[[R]]EUSE_TIME
 
|再使用できるようになるまでの期間
 
|再使用できるようになるまでの期間
 
|-
 
|-
|PASSWORD_LOCK_TIME
+
|PASSWO[[R]]D_LOCK_TIME
 
|ログインを指定回数以上失敗した後、ロックされる期間
 
|ログインを指定回数以上失敗した後、ロックされる期間
 
|-
 
|-
61行目: 61行目:
 
|-
 
|-
 
|PASSWORD_VERIFY_FUNCTION
 
|PASSWORD_VERIFY_FUNCTION
|パスワード複雑さを評価するPL/SQLファンクション
+
|パスワード複雑さを評価するPL/[[SQL]]ファンクション
 
|-
 
|-
 
|}
 
|}
69行目: 69行目:
 
=====パラメータの設定=====
 
=====パラメータの設定=====
 
[[File:0914_ora_profile02.jpg]]
 
[[File:0914_ora_profile02.jpg]]
=====SQL=====
+
=====[[SQL]]=====
  CREATE PROFILE "STRICT_PASSWD" LIMIT CPU_PER_SESSION DEFAULT
+
  C[[R]]EATE P[[R]]OFILE "ST[[R]]ICT_PASSWD" LIMIT CPU_PE[[R]]_SESSION DEFAULT
  CPU_PER_CALL DEFAULT
+
  CPU_PE[[R]]_CALL DEFAULT
 
  CONNECT_TIME DEFAULT
 
  CONNECT_TIME DEFAULT
 
  IDLE_TIME DEFAULT
 
  IDLE_TIME DEFAULT
  SESSIONS_PER_USER DEFAULT
+
  SESSIONS_PE[[R]]_USE[[R]] DEFAULT
  LOGICAL_READS_PER_SESSION DEFAULT
+
  LOGICAL_[[R]]EADS_PE[[R]]_SESSION DEFAULT
  LOGICAL_READS_PER_CALL DEFAULT
+
  LOGICAL_[[R]]EADS_PE[[R]]_CALL DEFAULT
  PRIVATE_SGA DEFAULT
+
  P[[R]]IVATE_SGA DEFAULT
  COMPOSITE_LIMIT DEFAULT
+
  [[COM]]POSITE_LIMIT DEFAULT
  PASSWORD_LIFE_TIME 1
+
  PASSWO[[R]]D_LIFE_TIME 1
  PASSWORD_GRACE_TIME 1
+
  PASSWO[[R]]D_G[[R]]ACE_TIME 1
  PASSWORD_REUSE_MAX 1
+
  PASSWO[[R]]D_[[R]]EUSE_MAX 1
  PASSWORD_REUSE_TIME UNLIMITED
+
  PASSWO[[R]]D_[[R]]EUSE_TIME UNLIMITED
  PASSWORD_LOCK_TIME 1
+
  PASSWO[[R]]D_LOCK_TIME 1
 
  FAILED_LOGIN_ATTEMPTS 1
 
  FAILED_LOGIN_ATTEMPTS 1
  PASSWORD_VERIFY_FUNCTION DEFAULT
+
  PASSWO[[R]]D_VE[[R]]IFY_FUNCTION DEFAULT
  
 
====ユーザにプロファイルを設定====
 
====ユーザにプロファイルを設定====
92行目: 92行目:
 
[[File:0915_ora_profile03.jpg]]
 
[[File:0915_ora_profile03.jpg]]
  
=====SQL=====
+
=====[[SQL]]=====
  ALTER USER "EXAM2" PROFILE "STRICT_PASSWD"
+
  ALTE[[R]] USE[[R]] "EXAM2" P[[R]]OFILE "ST[[R]]ICT_PASSWD"
  
 
=====試してみる=====
 
=====試してみる=====
 
でたらめなパスワードで接続
 
でたらめなパスワードで接続
  SQL> conn exam2/xxxxx@oradb1;
+
  [[SQL]]&gt; conn exam2/xxxxx@oradb1;
  ERROR:
+
  E[[R]][[R]]O[[R]]:
  ORA-01017: invalid username/password; logon denied
+
  O[[R]]A-01017: invalid username/password; logon denied
  
 
正しいパスワードで接続
 
正しいパスワードで接続
  SQL> conn exam2/abc123@oradb1;
+
  [[SQL]]&gt; conn exam2/abc123@oradb1;
  ERROR:
+
  E[[R]][[R]]O[[R]]:
  ORA-28000: the account is locked
+
  O[[R]]A-28000: the account is locked
  
 
ロックされている
 
ロックされている

2020年2月16日 (日) 04:30時点における最新版

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

ロックされている