Artykuł dotyczący SQL Server Pro "Odszyfrowywanie obiektów SQL Server" nadal działa w SQL Server 2008.
Musisz połączyć się przez DAC. Zobacz plik „Odszyfruj procedury składowane, funkcje, wyzwalacze, widoki.sql SQL 2005” w pobieranie .
Wystarczy podsumować kroki, które wykonuje dla następującej definicji procedury składowanej
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Pobiera zaszyfrowany tekst obiektu z
imageval
kolumna wsys.sysobjvalues
i przechowuje go w zmiennej@ContentOfEncryptedObject
- Oblicza
@ObjectDataLength
zDATALENGTH(@ContentOfEncryptedObject)/2
. - Generuje
ALTER PROCEDURE
instrukcja wypełniona do właściwej długości za pomocą-
znak (więc w tym przypadkuALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------
) - Wykonuje
ALTER
instrukcja, pobiera zaszyfrowaną wersję zsys.sysobjvalues
i przechowuje to w zmiennej@ContentOfFakeEncryptedObject
następnie cofa zmianę. - Generuje
CREATE PROCEDURE
instrukcja wypełniona do właściwej długości za pomocą-
znak (więc w tym przypadkuCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------
). Zostanie to zapisane w zmiennej@ContentOfFakeObject
Następnie przechodzi w pętlę dla @i = 1 to @ObjectDataLength
i odszyfrowuje definicję znak na raz za pomocą następującego XOR
obliczenia.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)