Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách giải mã thủ tục được lưu trữ trong SQL Server 2008

Bài viết SQL Server Pro "Giải mã các đối tượng SQL Server" vẫn hoạt động trong SQL Server 2008.

Bạn cần kết nối qua DAC. Xem tệp "Giải mã các thủ tục, hàm, trình kích hoạt, views.sql được lưu trữ trong SQL 2005" trong tải xuống .

Chỉ để tóm tắt các bước mà nó thực hiện cho định nghĩa thủ tục được lưu trữ sau đây

CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
  1. Lấy văn bản đối tượng được mã hóa từ imageval trong sys.sysobjvalues và lưu trữ nó trong một biến @ContentOfEncryptedObject
  2. Tính toán @ObjectDataLength từ DATALENGTH(@ContentOfEncryptedObject)/2 .
  3. Tạo ALTER PROCEDURE câu lệnh được đệm đúng độ dài bằng - ký tự (vì vậy trong trường hợp này là ALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------ )
  4. Thực thi ALTER tuyên bố, truy xuất phiên bản được mã hóa từ sys.sysobjvalues và lưu trữ trong biến @ContentOfFakeEncryptedObject sau đó quay trở lại thay đổi.
  5. Tạo CREATE PROCEDURE câu lệnh được đệm đúng độ dài bằng - ký tự (vì vậy trong trường hợp này là CREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS----------- ). Điều này được lưu trữ trong biến @ContentOfFakeObject

Sau đó, nó lặp lại cho @i = 1 to @ObjectDataLength và giải mã định nghĩa một ký tự tại một thời điểm bằng cách sử dụng XOR sau tính toán.

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. Cách xuất dữ liệu utf-8 từ SQL Server 2008 sang excel

  2. Thay thế NULL bằng 0 trong truy vấn máy chủ SQL

  3. Làm cách nào để khắc phục lỗi 'Nhà cung cấp đường ống được đặt tên, lỗi 40 - Không thể mở kết nối với' Máy chủ SQL '?

  4. Giải phẫu các bế tắc của SQL Server và cách tốt nhất để tránh chúng

  5. Tại sao lại xảy ra lỗi liên quan đến mạng hoặc lỗi cụ thể đối với phiên bản cụ thể trong khi thiết lập kết nối với SQL Server?