1

継承したいくつかのコードで、この少しの tsql に出くわしました。

DECLARE @a NVARCHAR(1000) ,
    @b NVARCHAR(4)
SET @b = ( SELECT   RIGHT(CAST(SQL_VARIANT_PROPERTY('#', 'basetype') AS VARCHAR(7)),
                          4)
         )
SET @a = SUBSTRING(object_definition(OBJECT_ID('sys.sp_columns')), 399, 6)
    + ' ' + @b + '(' + REPLACE(REPLACE(REPLACE('^523101239923^42310123^623^5',
                                               '^', '11'), '3',
                                       ' + ' + @b + '('), '2', ')')
    + ') '' '''
EXEC sp_executesql @a 

結果の「secrets」をクエリ ウィンドウに出力します (冗談でしょうか?)。このコードがなぜ作られたのか、誰が作ったのかはわかりません。誰かがそれがどのように機能するかを説明してもらえますか? 使い道がありますか、それとも引き裂くことができますか?

4

2 に答える 2

2

これは、クエリを生成して実行するための非常に遠回りの方法です。

select char(115) + char(101) + char(99) + char(114) + char(101) + char(116) + char(115) ' '

これは別の書き方です:

select 'secrets' as ' '

何か役に立つかどうかは、このクエリがどのように呼び出されるかによって異なります。アプリケーションがこれを呼び出して、(非常に貧弱な) パスワードまたは暗号化キーを取得することは可能ですか?

于 2013-06-18T18:36:01.853 に答える