1

私はバージョンのあるプロジェクトに取り組んでいます。新しいバージョンを公開する準備ができたら、DBAによってデータベースを更新するためのストアドプロシージャを準備します。私は彼にSPを送り、彼はそれらを実行します。ただし、DBAにSPコードを表示させたくありません。DBAにコードを表示せずにストアドプロシージャを転送することは可能ですか?

4

3 に答える 3

2

CLRストアドプロシージャを出荷してアセンブリを難読化すると、機能はかなり隠されてしまいます。

これがCLRストアドプロシージャを使用するための間違った動機になることをお勧めします。

于 2012-09-05T08:49:23.117 に答える
1

1つのオプションは、暗号化されたテキストファイルでSQLストアドプロシージャを提供することです。暗号化されたSQLテキストを読み取り、復号化してから選択したサーバーに展開する独自のアプリを.NETで記述します。

.NETで作業している場合は、そのようなアプリを作成するのがいかに簡単かがわかります。そのアプリにストアドProcs.DBAを提供するだけで、そのアプリを使用してストアドプロシージャを展開できます。単純なシナリオでは、SQLテキストの復号化に必要な「パスワード」をハードコーディングできますが、より機密性の高いシナリオでは、PKIを使用できます。

他のすべてのソリューションと同様に、このソリューションはリバースエンジニアリングできますが、CLRでストアドプロシージャロジックを書き直すよりも、私見の方が優れたオプションです。

注:WITH ENCRYPTIONストアドプロシージャを作成するためにオプションを使用すると想定しています。

于 2012-09-07T13:47:08.307 に答える
0

さて、フィリップがすでにコメントしているように、もし私があなたのストアドプロシージャを実行している人なら、私は自分のDBで何かを実行するのに大きな問題を抱えているでしょう。

コードを一目で読めないようにしたい場合は、難読化を試してください(BASE64でエンコード/デコードされた文字列をすぐに実行する場合は、ほとんどの場合、いずれかの形式を使用できます)

上記のすべてについて、暗号化されたストアドプロシージャが必要になりますが、それはシステムによって異なり、tsqlを十分に理解していません。

于 2012-09-05T08:47:16.243 に答える