Wie SQL-Code in SQL Server schützen
-
06-07-2019 - |
Frage
Ist es möglich, SQL 2008 gespeicherte Prozedur Code aus anyone`s Augen zu schützen? Vielleicht eine Verschlüsselung oder wie dll zusammenbauen?
Lösung
ja können Sie speichern die Datenbank in verschlüsselter Form ti, aber wenn Sie das tun, stellen Sie sicher, dass Sie den ursprünglichen Quellcode sicher irgendwo gespeichert haben ...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
Leider gibt es mindestens zwei Möglichkeiten, diesen Mechanismus zu besiegen. Eine davon ist SQL Profiler zu laufen, während die gespeicherte Prozedur ausführt; oft kann dies selbst den Text des Verfahrens zeigen, je nachdem, was die gespeicherte Prozedur tut (z wenn es Chargen hat GO, dynamische SQL usw.). Wenn sie die erste Installation verpassen, kann der Benutzer die gespeicherten Prozeduren löschen oder die Datenbank löscht, eine Profiler-Ablaufverfolgung starten, und stellen Sie sie neu erstellen (in diesem Fall werden sie erfassen die Prozedur CREATE-Anweisungen). Sie können Profiler aus enthüllt den Text zu Schnüffler verhindern, indem die Einbettung sp_password im Code als Kommentar:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END
Blick auf MSDN Create Procedure Dokumention