Wenn Sie es verstecken müssen, wie steht es mit der Klausel "WITH ENCRYPTION"?
Nein. Zumindest nicht in einer Weise, die nicht umkehrbar ist. SQL Server 2000 "WITH ENCRYPTION" kann umgekehrt werden, um den ursprünglichen Klartext zu erhalten. Der Pseudocode und ein T-SQL-Skript, das dies veranschaulicht, sind hier: Ссылка
Hinweis: Ich habe es nicht mit SQL 2005 oder höher versucht, aber meine Vermutung ist, dass es genauso verwundbar ist. Wie die MSDN-Dokumentation sagt:
VERSCHLÜSSELUNG Gibt an, dass SQL Server den ursprünglichen Text der CREATE PROCEDURE-Anweisung in ein verschleiertes -Format konvertiert.
Betonung meiner.
leicht umkehrbar, wenn Sie wissen, aber einschüchternd zu den meisten Menschen herumstochern Code. hex kodieren Sie sproc Logik und dann mit EXEC (@hexEncodedString) ausführen Siehe hierzu posten .
Eine Option wäre, nur die sensiblen Teile der gespeicherten Prozedur in eine CLR-gespeicherte Prozedur einzufügen und diese Assembly mit einem professionellen Verschleierungsprodukt zu verschleiern.
Alte Post, ich weiß. Aber ich kam von der Suche nach "Warum sollte ich SQL verschleiern?" Ich habe gerade ein kostenloses Produkt namens ApexSQL Refactor (keine Zugehörigkeit) installiert, das eine Verschleierungskomponente bietet.
Es bietet verschiedene Möglichkeiten, Ihren Code schwer lesbar zu machen. Ich war mir nicht sicher, warum ich eine solche Funktion möchte, da andere die Fähigkeit zur Verschlüsselung Ihrer gespeicherten Prozeduren notierten. Wie auch immer, dies ist ein Beispiel für die Ausgabe, die es von seiner Verschleierung zurückgeben kann.
%Vor%Wenn Sie wirklich besorgt sind, dass jemand in die DB gelangt und die Quelle für die Prozedur sieht, dann können Sie, wie S. Lott sagt, die Prozedur in C # portieren. Ich würde LINQ empfehlen.
Die Datenbank selbst sollte jedoch wahrscheinlich vor Personen geschützt werden, die auf den Code für Prozeduren zugreifen, die dies nicht sein sollten. Sie können die Rechte eines Benutzers oder einer Gruppe beschränken, um bei Bedarf EXECUTE-Zugriff auf einen Prozess zu haben.
Tags und Links sql stored-procedures obfuscation