1

ご挨拶、

私の会社は、財務と人事にPeoplesoftを使用しています。私たちの実装はOracleデータベース上にあります。global_names = TRUEに設定すると、データベースリンクにターゲットと同じ名前を付ける必要があります。私の質問は、init.oraパラメータファイルでglobal_namesをfalseに設定することの影響を知っている人はいますか?

具体的には、環境の1つ(global_names = true)にPRODLINKというデータベースリンクを設定し、本番HRデータベースを指すようにします。別の環境(global_names = false)にもPRODLINKというリンクがありますが、非実稼働データベースを指します。さらに複雑なことに、一方のデータベース環境はOracle 9.2にあり、もう一方はOracle10.2にあります。

これに対する答えを探しましたが、見つかりません。あなたが提供することができるあなたの助け/アドバイスを前もって感謝します。

JC

4

1 に答える 1

3

global_names=TRUE の利点は、接続先のデータベースを明確に示すデータベース リンクの名前を使用する必要があることです。FALSE に設定すると、この制限が取り除かれます。欠点は、紛らわしい名前のリンクを作成できることです。ひねくれたケースでは、データベース A、B、および C がある場合、「B」という名前のリンクを A に作成できますが、C を指しています。

また、global_names=FALSE を設定すると、誰かが悪意を持ってリンクの定義を変更し、不適切なアクセスやデータの損傷を引き起こす可能性がわずかにあるため、これはセキュリティ上の問題と考えることができます。ただし、これに関する特定のシナリオは考えられません。

全体として、FALSE に設定しても大きなマイナス面はありません。ただし、他にも検討できるオプションがいくつかあります。

1 つは、グローバル設定を TRUE のままにし、それを必要とするコードのセッション レベルで FALSE にリセットすることです。「誤った」名前のリンクを使用する必要があるアプリケーションが 1 つしかないため、私のサイトでこれを行います。この方法により、リンクをインタラクティブに使用したり、リンクを使用するコードを書いたりする人は、名前がリンク先と一致しないことに注意することができます。

もう 1 つは、global_names=TRUE を維持することです。そのため、環境は異なるリンク名を使用しますが、リンク名をコード内のパラメーターまたは構成オプションにします。たとえば、PL/SQL パッケージを構築するスクリプトがある場合、リンク名をスクリプトのパラメータにすることができます。

于 2008-11-25T13:55:29.710 に答える