Oracle Databaseをインストールする場合、通常はどのようなデフォルト以外の設定を適用しますか(または適用を検討しますか)?
私はハードウェアに依存する設定(メモリ割り当てなど)やファイルの場所ではなく、より一般的な項目を求めています。同様に、一般的に適用できるのではなく、特定のアプリケーションの特定の要件であるものは、実際には役に立ちません。
コード/ APIスキーマ(PL/SQL所有者)をデータスキーム(テーブル所有者)から分離していますか?デフォルトまたはデフォルト以外の役割を使用しますか?後者の場合、役割をパスワードで保護しますか?
また、デフォルトでインストールされているGRANTの取り消しを行う場所があるかどうかにも興味があります。 11gはデフォルトのインストールでよりロックダウンされているように見えるため、これはバージョンに依存する可能性があります。
これらは私が最近のセットアップで使用したものです。私が何かを逃したのか、どこであなたが同意しないのか(そしてその理由)を知りたいのですが。
データベースパラメータ
文字セット-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
これは私が一度遭遇したものです。これは、古いバージョンのOracleに関する他の誰かのベストプラクティスの例です。
監査-顧客から有効にする必要がない限り、オフにします。
コードスキーマとデータスキーマの分離:いいえ。ただし、コードとデータスキーマをユーザーから確実に分離し、ユーザーがロールまたは付与を介して基になるテーブル/コードにアクセスします。