This document identifies our permission requirements for interactions between the Delphix Engine and SQL Server environments and outlines the set of system tables to which we currently require access.


Delphix SQL Server Architectural Diagram

This diagram depicts the environments and hosts with which we have permissions dependencies. The Delphix architecture with SQL Server environments requires permissions on both the host and database for all Source, Staging, and Target environments. This document is organized such that there are separate sections for the host and database for Source, Staging, and Target environment permission requirements.


SQL Server Source Hosts and Databases

Source Host Requirements

The Delphix Engine needs a Windows domain user entered when adding source environments to the Delphix Engine. The Windows domain user provides remote read-only access to the Windows Registry, which allows the discovery of SQL Server instances and databases. This user must have the following permissions:


Domain User Requirement

Explanation

Be a member of the Backup Operators on the source host

Delphix needs Windows remote registry access to check for instances that are running on the source host. This requirement is used for performing discovery and gathering system details.

Be able to login to each SQL Server instance that the Delphix Engine will communicate with.

Delphix uses the Windows login to perform SQL Server instance and database discovery

Have db_datareader role for the master database on each SQL Server instance with which the Delphix Engine will communicate

Detailed in the section for Master Database Permissions Requirement below.

If the source cluster environment has AlwaysOn Availability Groups, The domain user must have access to certain views

Required to discover Availability Groups configuration. The Delphix domain user must have access to: VIEW ANY DEFINITION and VIEW SERVER STATE

The source host and target environments must have appropriate cross-domain trust relationships


The source host must belong to the same Windows domain as the target environments or the domain that the source environment uses must have appropriate cross-domain trust relationships established with the target environments' domains. 

Source Database Requirements

Delphix needs a SQL Server database userprovided when linking the dSource to the Delphix Engine. We have the following requirements for SQL Server instances:


Database User Requirement

Explanation

Login to local database account using SQL Authentication

Delphix needs to connect through Java database connectivity (JDBC) to the database. The database account cannot use Windows authentication, and this user will not perform any action that could affect production operations, only issuing read-only queries for backup information, database size, recovery mode, etc.

If Delphix takes copy-only backups, the SQL Server instances must run as either domain users or local service accounts

The SQL Server instance owner must have access to the Server Message Block (SMB).

Delphix database user must have db_backupoperator role

Required if the Delphix Engine will use Delphix Managed Backups or initiate copy-only full backups of the database

If the source cluster environment has AlwaysOn Availability Groups, the Delphix database user must have access to certain views

Required to discover Availability Groups configuration. The Delphix database user must have access to: VIEW ANY DEFINITION and VIEW SERVER STATE

Delphix database user must be a member of the ‘public’ group

We must be able to "use" the desired database. Delphix will periodically run a query to find the size of the database.

Delphix must be a db_datareader for the master and msdb system databases

These requirements are outlined in the following two sections for Master Database Permissions Requirement and MSDB Database Permissions Requirement.


Master Database Permissions Requirement: db_datareader

Delphix requires the db_datareader permission for access to the following system tables in master database instances on the source host:


System table

Justification

sys.databases

Used to determine the name and recovery model of databases within discover SQL Server instances

sys.availability_groups

Used for discovering all the availability groups within an Availability Group source environment.

sys.availability_group_listeners

Used for discovering all the availability groups within an Availability Group source environment.

  • A requirement for dSource linking of SQL Server clustered databases (replicas) is to provide an AG (Availability Group) listener for AG cluster source discovery. This is implemented on AG cluster source discovery as a failsafe if AG cluster source database authentication configuration change down the line, ensuring the Delphix engine has a way to reach the cluster and continue certain operations.

sys.availability_databases_cluster

Used for discovering all the availability groups within an Availability Group source environment.

sys.availability_replicas

Used for discovering all the availability groups within an Availability Group source environment.

sys.database_files

Used to determine the size of databases and whether filestream is enabled for a database

sys.dm_exec_requests

Used to enable Delphix to report backup operation progress

sys.master_files

Used to determine the primary file of a database

sys.filegroups

Used to determine the file groups of a database so that Delphix can configure VDBs with the same file groups


MSDB Database Permissions Requirement: db_datareader

Delphix requires the db_datareader permission for access to the following system tables in msdb database instances on the source host:


System table

Justification

msdb.dbo.backupset

Used to determine new backups that have been taken. This table is regularly queried to find out if a new backup image has been taken and needs to be synchronized with Delphix.

msdb.dbo.backupmediafamily

Used to determine the physical device names of the backup files comprising a backup.


SQL Server Staging/Target Hosts and Databases  

Staging/Target Host Requirements


Staging Host Requirement

Explanation

Must be a member of the local administrator's group or be a domain user authorized on the machine

We require this permission for mounting iSCSI LUNs presented by the Delphix Engine to the staging and target hosts.

“Membership in the local Administrators group, or equivalent, is the minimum required to run DiskPart”

Must have the ‘Log on as batch’ permission

We require this permission for remote PowerShell execution.

Must be able to access backups taken by the Source server, unless Delphix copy-only backups are usedThe Staging User will need to access backup files taken from the Source Database, typically via SMB. For more information, see Windows Users and Permissions on Database Servers.
The edition of the installed SQL Server instance(s) must support all database features used by linked Source databasesSQL Server may raise an error during some dSource operations if the Staging SQL Server Instance does not support features used by the Source Database. This is most easily addressed by using the same edition of SQL Server as the Source database. Features in use on the Source database can be checked using the sys.dm_db_persisted_sku_features dynamic view.


Staging and Target Database Requirements


Staging and Target Database Requirement

Explanation

Must have the server role sysadmin for each SQL Server instance that the Delphix Engine will communicate with.

The staging and target databases are managed and administered completely by Delphix. Our functionality requires many administrative operations on those databases and requires full access to them. Since database ownership can be changed by customers as part of configuring virtual databases, we must retain the sysadmin role to continue to administer the databases.

The edition of the installed SQL Server instance(s) must support all database features used by linked Source databasesSQL Server may raise an error during some dSource operations if the Staging SQL Server Instance does not support features used by the Source Database. This is most easily addressed by using the same edition of SQL Server as the Source database. Features in use on the Source database can be checked using the sys.dm_db_persisted_sku_features dynamic view.


Staging Database Requirements


Staging Database Requirement

Explanation

If Delphix takes copy-only backups, the SQL Server instances must run as either domain users or local service accounts

The SQL Server instance must have access to the SMB server.

If Delphix does not take copy-only backups, the SQL Server Instance Owner must be able to access backups taken by the Source serverThe SQL Server instance will attempt to restore databases using existing backup files from the Source Database, typically via SMB. For more information, see Windows Users and Permissions on Database Servers.

Related Links