古いバージョンのOracle Database(Oracle 7)では、SELECT ANY TABLEシステム権限など、ANYキーワードを持つ強力なシステム権限を持っている場合、SYSスキーマ内の内部表にもアクセスすることができました。つまり、例えばパスワードハッシュを含むUSER$表にもアクセス可能でした。
その後、セキュリティ強化のためANYシステム権限でSYSスキーマのオブジェクトへのアクセスは禁止されましたが、下位互換のために、このパラメーターをTRUEに設定した場合、セキュリティレベルを弱めてANYシステム権限でSYSスキーマのオブジェクトにアクセスできるようになります。
デフォルト値はFALSEで、SYSスキーマのオブジェクトにはアクセスできません。特別な要件がない限りにはTRUEに変更しないでください。
Oracle Databaseでは、ユーザー認証をOSに移譲する、外部認証機能があります。この機能を利用すると、OSで認証されたユーザーはデータベースで改めて認証することなくデータベースに接続できますが、その際にマッピングされるデータベースユーザー名は、このOS_AUTHENT_PREFIXの値にOSのユーザー名が続いたものになります。例えば、OSユーザー名が「puku」で、OS_AUTHENT_PREFIXがデフォルトの「OPS$」の場合、事前にデータベースに「OPS$PUKU」という、外部認証されるデータベースユーザーを作成しておくことで、OSにpukuでログインすれば再度認証することなくデータベースにOPS$PUKUユーザーとして接続することができます。
このパラメーターは、OS認証機能と併せて利用し、認証だけではなく権限(ロール)の付与もOSに移譲できます。このパラメーターをTRUEに設定すると、データベースユーザーに対するロールの割り当てを、OSで管理することができるようになります。
12cR2から追加された初期化パラメーターです。PDBごとに、ユーザーが実行できる操作を制限するロックダウンプロファイルを指定することができます。
ロックダウンプロファイルには、AQやパーティションなどのオプション利用の制限、UTL_FILEやUTL_SMTPパッケージなどを利用したネットワークやOSへのアクセスの制限、ALTER DATABASE、ALTER SYSTEM、ALTER SESSIONなどのSQL実行の制限を設定できます。
これらの制限を行うことで、PDBがOSやネットワークを介して他のPDBのデータにアクセスできないようにし、PDBごとの独立性を保証できます。
12cR2から追加された初期化パラメーターです。通常、PDBからのOS操作では、OSのoracleインストール(実行)ユーザー権限で処理が行われます。しかし、一般的にこのユーザーは強力な権限を持っており、このOSユーザーの権限を利用することで、PDBからOS経由で別のPDBのデータにアクセスされてしまう危険性があります。PDBごとにPDB_OS_CREDENTIALパラメーターにOSユーザーを指定することで、そのPDBからOS操作を行う際に、指定したOSユーザー権限を利用でき、結果としてPDBごとの独立性を保証することができます。
管理者としての接続(SYSDBAなど)時にパスワードファイルを利用するかどうかを指定します。パスワードファイルがない場合や、パラメーターの値をNONEに設定した場合には、データベースを起動するために管理者として接続する際にOS認証を利用する必要があります。パスワードを利用して接続しようとしても、下記のようにエラーとなります。
[puku@catvari ~]$ sqlplus sys/oracle as sysdba SQL*Plus: Release 12.2.0.1.0 Production on 水 5月 17 10:31:21 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。
パスワードを利用して認証する場合、データベースサーバのOSにdbaグループのユーザーとしてログインすることなく管理ツールなどを利用して管理者として接続し、データベースを管理することができ、運用性が向上します。Enterprise Managerなどの管理ツールを利用する場合など、パスワードファイルの利用が前提条件になっているものもあります。逆にパスワードファイルを利用しないことで、「強力な管理者として接続するためにはOSのdbaグループのユーザーとしてまずOSにログインしなければならない」という接続制限ができるようになります。
11gR1から非推奨で、下位互換のために残されているパラメーターです。デフォルトはFALSEですが、TRUEに設定されている場合、リモートホストのOS認証を信頼し、OS認証でデータベースに接続できるようになります。例えばリモートホストでOracleユーザーとしてログインしている場合、ローカルホストのOracleユーザーと同一と見なされ、あらためて認証されることなく管理者として接続できてしまう可能性があります。特別な必要性がない限りは値を設定しない(FALSEを設定する)ことを推奨します。
REMOTE_OS_AUTHENTと併せて利用するパラメーターで、リモートホストからのOS認証だけではなく、権限(ロール)の付与もリモートホストに移譲する機能です。OS_ROLESパラメーターのリモートホスト版になります。成りすましの危険性があるため、このパラメータのデフォルト値もFALSEです。特別な必要性がない限りは値を設定しない(FALSEを設定する)ことを推奨します。
11gR1から追加されたパラメーターですが、12cR1から非推奨で、下位互換のために残されています。
Oracle Databaseでは、11gR1からデータベースユーザーのパスワードで大文字、小文字を区別するようになりました。デフォルト値はTRUEで、デフォルトの状態では大文字と小文字を区別します。ただし、パスワードの大文字、小文字を区別しない古いプログラムやツールにも対応できるように、このパラメーターをFALSEに変更するとパスワードの大文字、小文字を区別しない昔の動作に戻すことができます。近年のプログラムやツールは、パスワードの大文字、小文字を区別できるものがほとんどですので、特別な必要性がない限りは設定しない(TRUEを設定する)ことを推奨します。
Copyright © ITmedia, Inc. All Rights Reserved.