Redgate Test Data Manager

Subsetter connection requirements

This document outlines the required database permissions for the database user used in our data migration/synchronization process. The user needs different permission sets for connecting to the source and target databases.

Overview

The database user must be configured with specific permissions on both the source and target databases to ensure proper functionality subsetting.

SqlServer

These permissions are all at the database level.

Source Database Permissions

The following permissions are required on the source database:

PermissionPurpose
CONNECTEstablish connection to the database
CREATE TABLECreate temporary tables for data processing
ALTER ANY SCHEMAModify schema structures during migration
SELECTRead data from source tables
VIEW ANY COLUMN ENCRYPTION KEY DEFINITIONAccess encrypted column metadata
VIEW ANY COLUMN MASTER KEY DEFINITIONAccess master key information for encrypted data
VIEW DATABASE PERFORMANCE STATEMonitor database performance during operations
ALTER ANY TRIGGERS DDLModify triggers that may affect data operations

Target Database Permissions

The following permissions are required on the target database:

PermissionPurpose
CONNECTEstablish connection to the database
SELECTAllows read access to a table-like objects
INSERTInsert migrated data into target tables
DELETERemove data during cleanup or error handling
EXECUTERun stored procedures and functions
VIEW ANY COLUMN ENCRYPTION KEY DEFINITIONHandle encrypted columns in target database
VIEW ANY COLUMN MASTER KEY DEFINITIONAccess encryption keys for target data
VIEW DATABASE PERFORMANCE STATEMonitor target database performance
ALTER ANY TRIGGERS DDLManage triggers on target tables


PostgreSQL

These permissions are per schema and per table in a database.


We need a user that has superuser privileges or to be the owner of the tables you are planning to subset because that is, to our knowledge, the only way to disable triggers and constraints in PostgreSQL.

We only try to disable triggers and constraints that are enabled, meaning if they have been disabled before Subset then, the following are the least amount of privileges needed for a subset:

Source Database Permissions

The following permissions are required on the source database:

ObjectPermissionPurpose
DatabaseCONNECTEstablish connection to the database
SchemaCREATECreate objects in a schema, needed for Subsetter's working tables
TableSELECTAllows read access to a table-like objects

Target Database Permissions

The following permissions are required on the target database:

ObjectPermissionPurpose
DatabaseCONNECTEstablish connection to the database
SchemaUSAGEAllows access to objects contained in the schema (assuming that the objects' own privilege requirements are also met).
TableSELECTAllows read access to a table-like objects
TableINSERTInsert migrated data into target tables


MySql/MariaDB/Oracle

We currently have no way of Subsetting these databases without being the schema owner or a proxy user. 


Didn't find what you were looking for?