Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak odszyfrować procedurę składowaną w SQL Server 2008

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'
  1. Pobiera zaszyfrowany tekst obiektu z imageval kolumna w sys.sysobjvalues i przechowuje go w zmiennej @ContentOfEncryptedObject
  2. Oblicza @ObjectDataLength z DATALENGTH(@ContentOfEncryptedObject)/2 .
  3. Generuje ALTER PROCEDURE instrukcja wypełniona do właściwej długości za pomocą - znak (więc w tym przypadku ALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------ )
  4. Wykonuje ALTER instrukcja, pobiera zaszyfrowaną wersję z sys.sysobjvalues i przechowuje to w zmiennej @ContentOfFakeEncryptedObject następnie cofa zmianę.
  5. Generuje CREATE PROCEDURE instrukcja wypełniona do właściwej długości za pomocą - znak (więc w tym przypadku CREATE 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))
      )
     )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekazać parametry z wartościami przechowywanymi w tabeli z java do procedury składowanej serwera sql?

  2. Dlaczego Asp.net MVC4 nie może używać bez plików cookie przechowywania stanu sesji SQL Server?

  3. Muszę obliczyć wartości dla rekordu w bazie danych na podstawie innych wartości w innych rekordach

  4. Przywracanie kopii zapasowej bazy danych SQL Server w niższej wersji

  5. DATEDIFF_BIG() Przykłady w SQL Server