SQL ServerでSQLコードを保護する方法
-
06-07-2019 - |
質問
SQL 2008ストアドプロシージャコードを誰の目からも保護することは可能ですか?たぶん、何らかの暗号化、またはdllのような組み立てですか?
解決
はい、暗号化された形式でデータベースに保存できますが、保存する場合は、元のソースコードが安全にどこかに保存されていることを確認してください...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
残念ながら、このメカニズムを無効にする方法は少なくとも2つあります。 1つは、ストアドプロシージャの実行中にSQLプロファイラを実行することです。これにより、ストアドプロシージャの実行内容に応じて、プロシージャ自体のテキストが明らかになることがあります(たとえば、GOバッチ、動的SQLなどがある場合)。最初のインストールに失敗した場合、ユーザーはストアドプロシージャを削除するか、データベースを削除し、プロファイラートレースを開始して、再作成を要求できます(この場合、CREATE PROCEDUREステートメントをキャプチャします)。プロファイラーがコードにsp_passwordをコメントとして埋め込むことで、スヌーパーにテキストが表示されるのを防ぐことができます。
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END
MSDN Create Procedure ドキュメントをご覧ください。
所属していません StackOverflow