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 user —provided 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.
|
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 used | The 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 databases | SQL 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 databases | SQL 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 server | The 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. |