SQL Server Pro の記事 "Decrypt SQL Server Objects" SQL Server 2008 でも引き続き機能します。
DAC経由で接続する必要があります。 ダウンロード .
次のストアド プロシージャ定義に対して実行する手順を要約すると
CREATE PROC dbo.myprocWITH ENCRYPTIONASSELECT 'FOO'
プレ>
imageval
から暗号化されたオブジェクト テキストを取得しますsys.sysobjvalues
の列 変数@ContentOfEncryptedObject
に格納します@ObjectDataLength
を計算しますDATALENGTH(@ContentOfEncryptedObject)/2
から .ALTER PROCEDURE
を生成します-
で正しい長さにパディングされたステートメント 文字 (この場合はALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------
)ALTER
を実行します ステートメント、sys.sysobjvalues
から暗号化されたバージョンを取得します それを変数@ContentOfFakeEncryptedObject
に格納します その後、変更をロールバックします。CREATE PROCEDURE
を生成します-
で正しい長さにパディングされたステートメント 文字 (この場合はCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS--------------
)。これは変数@ContentOfFakeObject
に格納されます次に、for
@i =1 to @ObjectDataLength
をループします。 次のXOR
を使用して、一度に 1 文字ずつ定義を復号化しますNCHAR( UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^ ( UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^ UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1)) ) )コード> プレ>