Comment protéger le code SQL dans SQL Server
-
06-07-2019 - |
Question
Est-il possible de protéger le code de procédure stockée SQL 2008 des yeux de quiconque? Peut-être que certains cryptage, ou assembler comme dll?
La solution
Oui, vous pouvez l’enregistrer dans la base de données sous forme chiffrée, mais si vous le faites, assurez-vous que le code source original est stocké en toute sécurité quelque part ...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
Malheureusement, il existe au moins deux manières de vaincre ce mécanisme. L'une consiste à exécuter SQL Profiler lors de l'exécution de la procédure stockée; cela peut souvent révéler le texte de la procédure elle-même, en fonction de ce que fait la procédure stockée (par exemple, si elle contient des lots GO, un SQL dynamique, etc.). S'ils manquent l'installation initiale, l'utilisateur peut supprimer les procédures stockées ou supprimer la base de données, démarrer une trace de Générateur de profils et vous demander de les recréer (dans ce cas, ils captureront les instructions CREATE PROCEDURE). Vous pouvez empêcher Profiler de révéler le texte à des espions en incorporant sp_password dans le code, sous forme de commentaire:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END
consultez la Procédure de création de MSDN pour documentation