Skip to content

Commit 1d6193a

Browse files
hdharshanarwestMSFT
authored andcommitted
Document NT AUTHORITY\SYSTEM login requirements
1 parent 1764778 commit 1d6193a

1 file changed

Lines changed: 70 additions & 43 deletions

File tree

docs/sql-server/azure-arc/prerequisites.md

Lines changed: 70 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ description: Describes prerequisites required for SQL Server enabled by Azure Ar
44
author: anosov1960
55
ms.author: sashan
66
ms.reviewer: mikeray, randolphwest
7-
ms.date: 10/21/2025
7+
ms.date: 04/16/2026
88
ms.topic: checklist
9-
ms.custom: references_regions
9+
ms.custom:
10+
- references_regions
11+
ai-usage: ai-assisted
1012
---
1113

1214
# Prerequisites - SQL Server enabled by Azure Arc
@@ -15,14 +17,14 @@ ms.custom: references_regions
1517

1618
An Azure Arc-enabled instance of [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] is an instance on-premises or in a cloud provider that is connected to Azure Arc. This article explains those prerequisites.
1719

18-
If your SQL Server virtual machines are running in VMware vSpherebased environments (including environments licensed through VMware vSphere Foundation or VMware Cloud Foundation), review [Support on VMware](#support-on-vmware).
20+
If your SQL Server virtual machines run in VMware vSphere-based environments (including environments licensed through VMware vSphere Foundation or VMware Cloud Foundation), review [Support on VMware](#support-on-vmware).
1921

2022
## Before you deploy
2123

2224
Before you can Arc-enable an instance of [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)], you need to:
2325

24-
- Have an Azure account with an active subscription. If needed, [create a free Azure Account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn).
25-
- Verify [Arc connected machine agent prerequisites](/azure/azure-arc/servers/prerequisites). The Arc agent must be running in the typical 'full' mode.
26+
- Create an Azure account with an active subscription. If needed, [create a free Azure Account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn).
27+
- Verify [Arc connected machine agent prerequisites](/azure/azure-arc/servers/prerequisites). The Arc agent must run in the typical 'full' mode.
2628
- Verify [Arc connected machine agent network requirements](/azure/azure-arc/servers/network-requirements).
2729
- Open firewall to [Azure Arc data processing service](#connect-to-azure-arc-data-processing-service).
2830
- Register resource providers. Specifically:
@@ -33,29 +35,29 @@ Before you can Arc-enable an instance of [!INCLUDE [ssnoversion-md](../../includ
3335

3436
### Installation account permissions
3537

36-
The user or service principal requires:
38+
The user or service principal needs:
3739

3840
- Read permission on the subscription
3941
- Local administrator permission on the operating system to install and configure the agent
4042
- For Linux, use the root account
41-
- For Windows, use an account that is a member of the Local Administrators group
43+
- For Windows, use an account that's a member of the Local Administrators group
4244

4345
Before enabling SQL Servers with Arc, the installation script checks:
44-
46+
4547
- The region where the Arc-enabled SQL Server is supported
4648
- `Microsoft.AzureArcData` resource provider is registered
47-
49+
4850
These checks require read permission on the subscription for the user.
4951

50-
The user or service principal requires the following permissions in the Azure resource group to complete the task. Specifically:
52+
To complete the task, the user or service principal needs the following permissions in the Azure resource group:
5153

5254
- [`Azure Connected Machine Onboarding`](/azure/role-based-access-control/built-in-roles#azure-connected-machine-onboarding) role
5355
- `Microsoft.AzureArcData/register/action`
5456
- `Microsoft.HybridCompute/machines/extensions/read`
5557
- `Microsoft.HybridCompute/machines/extensions/write`
5658
- `Microsoft.Resources/deployments/validate/action`
5759

58-
Users can be assigned to built-in roles that have these permissions, for example:
60+
Assign users to built-in roles that have these permissions, such as:
5961

6062
- [Contributor](/azure/role-based-access-control/built-in-roles#contributor)
6163
- [Owner](/azure/role-based-access-control/built-in-roles#owner)
@@ -64,61 +66,84 @@ For more information, see [Assign Azure roles using the Azure portal](/azure/rol
6466

6567
### Verify state of user databases
6668

67-
When a SQL Server instance is enabled by Azure Arc, the connection sets some database permissions so that you can manage databases from Azure. For details about the permissions set at a database level, review [SQL permissions](configure-windows-accounts-agent.md#sql-permissions).
69+
When a SQL Server instance is enabled by Azure Arc, the connection sets some database permissions so that you can manage databases from Azure. For details about the permissions set at a database level, see [SQL permissions](configure-windows-accounts-agent.md#sql-permissions).
6870

69-
Only databases that are online and updateable are included.
71+
Only databases that are online and updatable are included.
7072

7173
Verify the state of any databases you plan to manage from Azure.
7274

73-
This query lists all databases, their status, and if they're updateable:
75+
This query lists all databases, their status, and if they're updatable:
7476

7577
```sql
76-
SELECT
77-
name AS DatabaseName,
78-
CASE
79-
WHEN state_desc = 'ONLINE' THEN 'Online'
80-
WHEN state_desc = 'OFFLINE' THEN 'Offline'
81-
ELSE 'Unknown'
82-
END AS Status,
83-
CASE
84-
WHEN is_read_only = 0 THEN 'READ_WRITE'
85-
ELSE 'READ_ONLY'
86-
END AS UpdateableStatus
78+
SELECT name AS DatabaseName,
79+
CASE WHEN state_desc = 'ONLINE' THEN 'Online'
80+
WHEN state_desc = 'OFFLINE' THEN 'Offline'
81+
ELSE 'Unknown'
82+
END AS Status,
83+
CASE WHEN is_read_only = 0 THEN 'READ_WRITE'
84+
ELSE 'READ_ONLY'
85+
END AS UpdateableStatus
8786
FROM sys.databases;
8887
```
8988

9089
Run that query on any instance that you enable.
9190

9291
### Service account permissions
9392

94-
The SQL Server service account must be a member of the `sysadmin` fixed server role on each SQL Server instance. By default, the SQL Server service account is a member of the `sysadmin` fixed server role.
93+
The SQL Server service account must be a member of the **sysadmin** fixed server role on each SQL Server instance. By default, the SQL Server service account is a member of the **sysadmin** fixed server role.
94+
95+
For more information about this requirement, see [SQL Server service account](configure-least-privilege.md#sql-server-service-account).
96+
97+
### NT AUTHORITY\SYSTEM login requirements
98+
99+
The Azure extension for SQL Server Deployer runs under the `LocalSystem` (`NT AUTHORITY\SYSTEM`) account to perform permission configuration. As part of this process, the deployer connects to each SQL Server instance using Windows integrated authentication.
100+
101+
By default, `NT AUTHORITY\SYSTEM` has a SQL Server login with `CONNECT SQL` permission. In environments where SQL Server security hardening removes or restricts the `NT AUTHORITY\SYSTEM` login (such as by disabling the login or denying `CONNECT SQL`), the Azure extension for SQL Server fails to provision successfully.
102+
103+
Before running this query in a production environment, review and test it in a non-production or test environment to validate the results. To verify that `NT AUTHORITY\SYSTEM` can connect to SQL Server, run the following query on each instance (review and test in a non-production or test environment before running in production):
104+
105+
```sql
106+
SELECT sp.name AS login_name,
107+
CASE WHEN sp.is_disabled = 1 THEN 'DISABLED' ELSE 'ENABLED' END AS login_status,
108+
ISNULL(p.state_desc, 'NONE (implicit)') AS connect_sql_permission
109+
FROM sys.server_principals AS sp
110+
LEFT OUTER JOIN sys.server_permissions AS p
111+
ON p.grantee_principal_id = sp.principal_id
112+
AND p.permission_name = N'CONNECT SQL'
113+
AND p.class_desc = N'SERVER'
114+
WHERE sp.name = N'NT AUTHORITY\SYSTEM';
115+
```
116+
117+
Successful provisioning requires that:
118+
119+
- The login exists (a row is returned)
120+
- The login status is `ENABLED`
121+
- `CONNECT SQL` permission is granted
95122

96-
For more information about this requirement, review [SQL Server service account](configure-least-privilege.md#sql-server-service-account).
123+
If your organization determines that re-adding the `NT AUTHORITY\SYSTEM` account or granting extra permissions is acceptable for your environment, restore connectivity by creating the authentication and granting `CONNECT SQL` permission:
124+
125+
```sql
126+
CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;
127+
GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM];
128+
```
129+
130+
After making changes, verify that the extension provisions successfully.
97131

98132
### Set proxy exclusions
99133

100-
> [!NOTE]
101-
> The exclusion in this section is required for the March 2024 release and before.
102-
>
103-
> Beginning with the release in April 2024, this exclusion isn't required.
134+
> [!NOTE]
135+
> Starting with the April 2024 release, this exclusion isn't required. Beginning with extension version 1.1.2986.256, you can set the `NO_PROXY` environment variable to bypass the proxy for specific URLs while routing all other requests through the proxy server. For example, use `NO_PROXY` to route requests to Azure Key Vault through private endpoints.
104136
105-
If a proxy server is used, set the `NO_PROXY` environment variable to exclude proxy traffic for:
137+
If you use a proxy server, set the `NO_PROXY` environment variable to exclude proxy traffic for:
106138

107139
- `localhost`
108140
- `127.0.0.1`
109141

110-
> [!NOTE]
111-
> Beginning with extension version `1.1.2986.256`, you can set `NO_PROXY` environment variable to bypass proxy for URLs.
112-
>
113-
> You can configure the extension to bypass the proxy endpoint for requests to specific URLs while using a proxy server for all other requests.
114-
>
115-
> For example, you can configure the extension by setting `NO_PROXY` environment variable to use private endpoints for requests to Azure Key Vault, while all other requests use the proxy server.
116-
117142
### Connect to Azure Arc data processing service
118143

119144
[!INCLUDE [data-processing-service-permission](includes/data-processing-service-permission.md)]
120145

121-
> [!NOTE]
146+
> [!NOTE]
122147
> You can't use Azure Private Link connections to the Azure Arc data processing service. See [Unsupported configurations](#unsupported-configurations).
123148
124149
### Network requirements for enabling Microsoft Entra authentication
@@ -166,20 +191,22 @@ az provider register --namespace 'Microsoft.AzureArcData'
166191

167192
## Azure subscription and service limits
168193

169-
Before configuring your [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] instances and machines with Azure Arc, review the Azure Resource Manager [subscription limits](/azure/azure-resource-manager/management/azure-subscription-service-limits#subscription-limits) and [resource group limits](/azure/azure-resource-manager/management/azure-subscription-service-limits#resource-group-limits) to plan for the number of machines to be connected.
194+
Before configuring your [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] instances and machines with Azure Arc, review the Azure Resource Manager [subscription limits](/azure/azure-resource-manager/management/azure-subscription-service-limits#subscription-limits) and [resource group limits](/azure/azure-resource-manager/management/azure-subscription-service-limits#resource-group-limits) to plan for the number of machines to connect.
170195

171196
## Supported regions
172197

173198
[!INCLUDE [azure-arc-data-regions](includes/azure-arc-data-regions.md)]
174199

175200
## Install Azure extension for SQL Server
176201

177-
The [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] Setup Installation Wizard doesn't support installation of the Azure extension for SQL Server. There are two ways to install this component. Do one of the following:
202+
The [!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] Setup Installation Wizard doesn't support installation of the Azure extension for SQL Server.
203+
204+
You can install this component in two ways:
178205

179206
- [SQL Server enabled by Azure Arc deployment options](deployment-options.md)
180207
- [Install Azure extension for SQL Server from the command line](../../database-engine/install-windows/install-sql-server-from-the-command-prompt.md#install-and-connect-to-azure)
181208

182-
For VMware vSpherebased environments, review [Support on VMware](#support-on-vmware).
209+
For VMware vSphere-based environments, review [Support on VMware](#support-on-vmware).
183210

184211
## Related content
185212

0 commit comments

Comments
 (0)