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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top