Skip to content
dbSlice®
Product Who it's for Performance Pricing Blog Guides Support Buy dbSlice

dbSlice / Use cases

Test data that looks like production, without your customers in it

Development and QA need data with the shape of production. Security needs customer data to stay out of test, staging and development. dbSlice does both in the same step: it masks the columns you choose while it copies, so the real values are never written to the test database.

Try it free on the Microsoft Store ↗ See pricing

At a glance

  • What it does: copies the production rows you choose into staging, dev or test and masks the sensitive columns on the way; unmasked values are never written to the target.
  • Engines: works between any pair of SQL Server, PostgreSQL, Oracle, MySQL, MariaDB, Firebird, SQLite and InterSystems Caché/IRIS.
  • What it does not do: mask in the Replicator, pick the child rows for you (filters are per table), or decide which columns are personal data under your laws.
  • Free or paid: try it in the free Microsoft Store version (no license key); writing to a target database needs a Desktop or Server license.

Why copies of production are a risk

Every copy of production in a test environment is another place where customer data can leak. Test systems usually have wider access and lighter controls than production.

dbSlice Synchronize tab

Masked in flight, not after the copy

dbSlice reads the source, applies your masking rules to each row, and only then writes to the target. There is no unmasked intermediate copy to clean up later. It works between different engines — for example, from a SQL Server production database to a PostgreSQL test database.

Keys stay intact, so the application still works

A masked copy is only useful if the application can run on it. dbSlice never masks primary keys, foreign keys or the key column of the operation. Orders still point to their customers, invoices to their orders, and joins return the same rows as in production.

By default every other column is masked by type. You then choose, per column, what to keep and how to mask the rest.

Masking options, per column

OptionExampleUse it for
Mask by type (default)Johnson → Jo****; numbers → 0; dates → 1900-01-01Anything you did not review yet
Keep the originalunchangedNon-sensitive columns (status, product code)
EmptyNULLColumns the test never reads
Keep the first characterskeep:4,* → 5511********Phone prefixes, partial references
Fixed valuefixed:Test customerFree-text notes
Template with the row keytemplate:user{key}@example.comUnique, readable e-mails or logins
Hashhash: → same input, same 16-char codeColumns used to group or join that are not foreign keys
Hash with a secrethash:your-secret (HMAC-SHA256)Same, without a code anyone can recompute
Hide digits123.456.789-09 → ***.***.***-**Document numbers that must keep their format
E-mail[email protected] → ma****@company.comKeep the domain for routing tests

A sample row shows the result of every rule before you run anything. Plain hash: without a secret can be recomputed by anyone who has a list of likely values (document numbers, for example); use hash:secret for those.

Consistent, and hard to reverse

The hash treatment always turns the same value into the same code, so a masked e-mail or document number still matches across tables. Add a secret and dbSlice uses HMAC-SHA256: without the secret, nobody can rebuild a tax ID or a phone number by trying every possible value.

One job per table, run in order — refresh every night

Masking is set per table: build a sync job for each table that holds personal data, with its masking map, and save it. Run the jobs parents first, children after, from the CLI or Windows Task Scheduler, every night or before each test cycle. The map is saved with the job, so the same rules apply every time. The same map also works when you export to a file (CSV, JSON, SQL, Excel and more) instead of copying to a database.

Tables with nothing sensitive (product catalog, statuses, lookups) can go through the Replicator, which copies a list of tables in one run, parents before children. For a full refresh it empties the staging tables in foreign-key order and refuses before deleting anything if the list is incomplete. The Replicator copies values as they are: it does not apply masking, so keep tables with personal data out of it.

Choose the slice with a WHERE filter on each table (last 90 days, one region, one tenant). Filters are per table: make sure the child tables are filtered consistently with their parents, or the foreign keys in staging will point to rows you did not copy.

Need data that never existed?

When even masked production data is too much, the synthetic data generator creates fake rows that follow the table's types and foreign keys: names, e-mails, cities, phone numbers, dates in a range, values from a list. See Synthetic test data.

Across engines

Production on SQL Server and staging on PostgreSQL? Production on Oracle and a local SQLite for a developer laptop? The masked copy works between any pair of SQL Server, PostgreSQL, Oracle, MySQL, MariaDB, Firebird, SQLite and InterSystems Caché/IRIS.

Your responsibility, stated plainly

dbSlice applies the rules you set. It does not decide on its own which columns are personal data, and using it does not make a process compliant by itself. Masking reduces what leaves production; your security and privacy team keeps the decision about which columns are personal data under your laws and contracts. Review the masking map with whoever is responsible for data protection in your company, and keep the job definitions where they can be audited. dbSlice does not send your data anywhere: it runs on your Windows machine and connects directly to your databases.

Copying with masking writes to the target, so it needs a Desktop or Server license. Start with the free version · Pricing

Try it on your own data: the free Microsoft Store version needs no license key.

Try free on the Microsoft Store ↗Buy dbSlice

Related guides

  • Keep data in step while your systems coexist
  • Tell your apps about every row you write
  • Send database rows to Kafka or a REST API, without writing a producer
dbSlice®

Professional data synchronization, migration and reconciliation — for Windows and Linux (Docker).

A Thinwork product

Product

Product Pricing Guides Linux (Docker) Release notes Free version (Microsoft Store) Support FAQ Renew maintenance CLI examples

Legal

Terms of Use Privacy Policy Refund Policy EULA

Company

THINWORK TECNOLOGIA DA INFORMACAO - LTDA
CNPJ 09.166.605/0001-21
Since 2007

Av. Paulista, 1471, Conj. 511, Anexo CP 1722
Bela Vista, São Paulo - SP, 01311-927, Brazil

Sales

+55 (11) 5197-7969 [email protected]

Support hours: Mon–Fri, 9:00–17:00 (UTC−3)

github.com/thinwork Follow @dbsliceapp
© 2026 dbSlice®. All rights reserved. Windows x64 · GUI + CLI · Linux (Docker) · Web

dbSlice® and the dbSlice pizza mascot logo are registered trademarks of Thinwork Tecnologia da Informação Ltda. with the Brazilian National Institute of Industrial Property (INPI).

All other product names, logos and brands are the property of their respective owners and appear here only to identify the systems dbSlice works with. dbSlice is an independent product, not affiliated with, sponsored or endorsed by them. Learn more