1

SQL Server CLR ストアド プロシージャを作成しているときに、通常のように .net フレームワークで何も参照できないことに気付きました。いくつか読んだ後、最初にアセンブリをデータベースにロードする必要があることに気付きました。

したがって、必要なものをロードしましたが、P/Invoke のために UNSAFE アクセス許可セットを使用する必要がありました。ストアド プロシージャ コードでそれらを参照できるようになり、すべて正常に動作します。

ただし、何をしているのかよくわからない場合に UNSAFE に設定しなければならないことについては少し心配です。だから私の質問はこれです:

.net フレームワークを UNSAFE としてロードしても、それが何をしているのか正確にはわかりませんか? そして、そうすることで、SQLサーバーのセキュリティ/堅牢性/スケーラビリティがどのように損なわれるのでしょうか(マイクロソフトが警告するように)?

どうもありがとう。

4

3 に答える 3

0

サーバー管理者 (または DBA または責任者) として何も知らない多くの公開 Web サイトをホストしているサーバーで SQL データベース エンジンを使用する場合は、それらのアクセスを制限する必要があります。また、一部の大企業でデータが最も重要な制限された領域に DBA がいる場合、これもまた最も重要なことです。

私の見解では、アプリケーションが必要とするものを提供する必要があります。それ以上のものは何もありません。たとえば、レジ​​ストリを表示する必要がない場合、アセンブリへの無制限のアクセスを許可したいのはなぜですか? 誰かがあなたのアプリケーションのコードを挿入し、データベースをハイジャックした場合 (これも無制限のアクセスで!)、それがどれほど危険であるかはわかりません。

それが役に立てば幸い

于 2013-01-30T10:47:56.040 に答える