2017-05-24 35 views
-1

私は同じ長さでランダムな文字列で、すべてのテキスト値を変更することで、SQL Serverデータベースを難読化する必要があります。TSQLは:UPDATE文でランダムな文字列を生成

qwert -> vno3w 
a123456 -> vn58wof 

私はUPDATEにプロシージャまたは関数を使用することはできません、文字列の中には何千ものシンボルを持つことができるので、GUIDは変種ではありません。

私が見つけたその最高の理由は(クライアントがそのような実際のユーザーデータを削除せずに私たちのバックアップを与えない)生産のようなDB上の新しいコンポーネントのperformenceをチェックすることです

declare @BinaryData varbinary(max) 
, @CharacterData varchar(max) 
, @Length int = 2048 

set @BinaryData=crypt_gen_random (@Length) 

set @CharacterData=cast('' as xml).value('xs:base64Binary(sql:variable("@BinaryData"))', 'varchar(max)') 

のようなものです。 現在のケースでは、外部キーは問題ありません。

お願いします。

+0

1.これは*方法が広すぎます。 2.なぜあなたはこれのようなことをする必要がありますか? – Siyual

+1

あなたがすでに持っているものを私たちに教えてください。 – RBarryYoung

+0

データベース全体を暗号化できます。 – McNets

答えて

0
SELECT STUFF((SELECT '' + symbols FROM (
SELECT CHAR(
CASE WHEN r between 0 and 9 THEN 48 
WHEN r between 10 and 35 THEN 55 
ELSE 61 END + r) symbols 
FROM 
master..spt_values 
CROSS JOIN 
(SELECT CAST(RAND(ABS(CHECKSUM(NEWID()))) *61 as int) r) a WHERE type = 'P' AND number < 3333) symbols 
FOR XML PATH('')) ,1,1,'') AS RandText 
関連する問題