benchdogGet the tools
ToolsSQL Data Scrambler
SQL Server and Azure SQL

Benchdog SQL Data Scrambler

Scramble personal data in test and dev copies. Rows still join.

VS Code, desktop and command line. Windows, Mac and Linux. One licence covers all three.

Replace names, emails, phones, addresses and card numbers in a test or dev copy of a SQL Server or Azure SQL database with fake, masked or shuffled values. Keys stay, so rows still join.

Personal data found for you

Tick the tables and Data Scrambler works out each column from its name. Names, emails, phones and street addresses get fake ones, card, account and ID numbers are masked, dates of birth move by up to a year and pay moves a little. Everything else is kept.

Names, emails, dates and card numbers are spotted and given a rule.

Keys stay, rows still join

Every row still joins after a scramble. Primary keys, foreign keys, identities and the columns other tables point to are kept. The same value gets the same result in every table, so an email scrambled in one table still matches the same email in another.

Keys are kept, so the scrambled copy still joins up.

Eight ways to change a column

Choose how a column changes when the automatic rule is not what you want: Keep, Fake, Shuffle, Mask, Set to NULL, One value, Noise or Date shift. Only the rules that fit the column are offered, and Automatic goes back to the one worked out from its name.

Mask, shuffle, fake, noise, date shift and more, per column.

See before and after

Check the rules on real rows before the copy changes. Preview Rows shows the first 50 rows of a table before and after, with every value that changes marked. Nothing is written.

Every row before and after, before anything is written.

Scrambled in place, safely

Nothing changes until you type the database's name. Each table is then scrambled in its own transaction, whole or not at all, and on SQL Server a copy-only backup can be taken first.

Type the database's name to confirm. One transaction, backup first if you want.

A new seed every run

Leave the seed empty and every run uses a new one, so nobody can check a guess against the scrambled copy. Set a seed only when two runs must match: the same seed turns the same value into the same result each time.

An empty seed means a new one every run.

Personal tables flagged for you

Tables you have not ticked but whose columns look personal are tagged amber, and one click ticks them all. A system-versioned table gets a note that its history still holds the real values, and tables that can not be scrambled are tagged red with why.

Tables that look personal are flagged, so none is missed.

Save it, run it anywhere

Set a scramble up once and run it again on each fresh copy. Save it as a .datascrambler.json project file and run it from VS Code, the desktop app or the benchdog command line. VS Code checks it as you edit, and it never holds a password.

Project files get IntelliSense, problems and an Open Scramble link.