web-dev-qa-db-ja.com

Oracleデータベース作成の設定のベストプラクティス

Oracle Databaseをインストールする場合、通常はどのようなデフォルト以外の設定を適用しますか(または適用を検討しますか)?

私はハードウェアに依存する設定(メモリ割り当てなど)やファイルの場所ではなく、より一般的な項目を求めています。同様に、一般的に適用できるのではなく、特定のアプリケーションの特定の要件であるものは、実際には役に立ちません。

コード/ APIスキーマ(PL/SQL所有者)をデータスキーム(テーブル所有者)から分離していますか?デフォルトまたはデフォルト以外の役割を使用しますか?後者の場合、役割をパスワードで保護しますか?

また、デフォルトでインストールされているGRANTの取り消しを行う場所があるかどうかにも興味があります。 11gはデフォルトのインストールでよりロックダウンされているように見えるため、これはバージョンに依存する可能性があります。

これらは私が最近のセットアップで使用したものです。私が何かを逃したのか、どこであなたが同意しないのか(そしてその理由)を知りたいのですが。

データベースパラメータ

  • 監査(AUDIT_TRAILからDB、AUDIT_SYS_OPERATIONSからYES)
  • DB_BLOCK_CHECKSUMおよびDB_BLOCK_CHECKING(両方ともFULL)
  • GLOBAL_NAMESをtrueに
  • OPEN_LINKSを0に(この環境で使用されることを期待していませんでした)

文字セット-AL32UTF8

プロファイル
単純なパスワードを防ぐための追加チェックとして、apexディクショナリテーブル(FLOWS_030000.wwv_flow_dictionary $)を使用する修正されたパスワード検証関数を作成しました。

開発者のログイン

CREATE PROFILE profile_dev LIMIT FAILED_LOGIN_ATTEMPTS 8 
PASSWORD_LIFE_TIME 32 PASSWORD_REUSE_TIME 366 PASSWORD_REUSE_MAX 12
PASSWORD_LOCK_TIME 6 PASSWORD_GRACE_TIME 8
PASSWORD_VERIFY_FUNCTION verify_function_11g
SESSIONS_PER_USER unlimited CPU_PER_SESSION   unlimited
CPU_PER_CALL      unlimited PRIVATE_SGA  unlimited
CONNECT_TIME 1080 IDLE_TIME 180
LOGICAL_READS_PER_SESSION unlimited LOGICAL_READS_PER_CALL unlimited;

アプリケーションログイン

CREATE PROFILE profile_app LIMIT FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 999 PASSWORD_REUSE_TIME 999 PASSWORD_REUSE_MAX 1
PASSWORD_LOCK_TIME 999 PASSWORD_GRACE_TIME 999
PASSWORD_VERIFY_FUNCTION verify_function_11g
SESSIONS_PER_USER unlimited CPU_PER_SESSION   unlimited
CPU_PER_CALL      unlimited PRIVATE_SGA  unlimited
CONNECT_TIME      unlimited IDLE_TIME  unlimited
LOGICAL_READS_PER_SESSION unlimited LOGICAL_READS_PER_CALL unlimited;

特権標準のスキーマ所有者アカウントの場合

CREATE CLUSTER  
CREATE TYPE  
CREATE TABLE   
CREATE VIEW   
CREATE PROCEDURE   
CREATE JOB  
CREATE MATERIALIZED VIEW   
CREATE SEQUENCE  
CREATE SYNONYM  
CREATE TRIGGER  
11
Gary

これは私が一度遭遇したものです。これは、古いバージョンのOracleに関する他の誰かのベストプラクティスの例です。

http://www.akadia.com/services/ora_linux_install_10g.html

1
djangofan

監査-顧客から有効にする必要がない限り、オフにします。

コードスキーマとデータスキーマの分離:いいえ。ただし、コードとデータスキーマをユーザーから確実に分離し、ユーザーがロールまたは付与を介して基になるテーブル/コードにアクセスします。

0
Adam Musch