あなたの目標が何であるかは明確ではありません。知的財産を保護しようとしていますか。ユーザーがソース コード内の機密情報 (パスワードなど) を閲覧できないようにする。ユーザーが手順自体を変更するのを防ぎますか、それとも何か他のものですか?ユーザーは自社の内部ユーザーですか、それとも外部の顧客ですか?彼らはデータベースとアプリケーションをホストしていますか、それともあなたですか?
知的財産を保護するには:
- ユーザー (顧客?) に、利用規約を明記し、知的財産の開示に対する罰則を含む NDA または契約に署名してもらいます
- ウェブ サービスとしてホストおよび公開するサービスに機密情報を移動する
ユーザーにソース コードが表示されないようにするには:
- 暗号化を使用して手順を作成 - これは「通常の」ユーザーがコードを表示できないようにするだけであり、sysadmin 権限を持つ特定のユーザーを停止することはありません
- TSQL を使用する代わりに .NET で CLR プロシージャを作成する
- 機密情報をコンパイル済みのクライアント アプリケーションに移動する
- ウェブ サービスとしてホストおよび公開するサービスに機密情報を移動する
ユーザーが手順を変更できないようにするには:
- 必要な権限を与えないでください
最終的に、sysadmin パーミッションを持つ決心したユーザーは、コード内のロジックをリバース エンジニアリング、デバッグ、逆コンパイル、またはその他の方法で明らかにします。したがって、何を防ごうとしているのか、あなたやあなたの会社にどのような影響を与える可能性があるのか、そしてそれを防ぐためにどれだけの時間とお金を投資するつもりなのかを明確にする必要があります。