Configurar contas de serviço Windows e permissões para Azure Extension for SQL Server

Aplica-se a:SQL Server

Este artigo lista as permissões que a Extensão Azure para SQL Server concede à conta NT SERVICE\SqlServerExtension quando usa mínimo privilégio para instâncias SQL Server ativadas por Azure Arc. Com a configuração de menor privilégio, a extensão concede apenas as permissões necessárias quando ativas funcionalidades no portal do Azure.

Note

NT AUTHORITY\SYSTEM deve ter acesso para modificar permissões em diretórios listados e chaves do Registro. Esse acesso é necessário para que NT AUTHORITY\SYSTEM possa conceder o acesso necessário à conta para o NT SERVICE\SqlServerExtension modo de privilégio mínimo.

Além disso, NT AUTHORITY\SYSTEM deve ter um login ativo de SQL Server com permissão CONNECT SQL em cada SQL Server instância. O Deployer liga-se a SQL Server como NT AUTHORITY\SYSTEM para configurar todas as permissões ao nível SQL descritas neste artigo. Se este login for desativado, removido ou negado CONNECT SQL , o Deployer não pode configurar permissões SQL nem em modo padrão nem em modo de privilégio mínimo. Consulte Pré-requisitos para os passos de verificação.

Overview

Quando você conecta o SQL Server ao Azure Arc com o menor privilégio habilitado, a extensão do Azure Arc concede sua conta de serviço, NT SERVICE\SqlServerExtension, somente as permissões de que cada recurso precisa quando você habilita esse recurso. A extensão remove automaticamente essas permissões se você desativar o recurso. Se um recurso estiver inativo, a extensão não concederá permissões para esse recurso.

Não há suporte para a configuração manual das permissões para a conta do agente.

Note

Atualmente, a configuração menos privilegiada não é aplicada por padrão.

Os servidores existentes com versão 1.1.2859.223 de extensão ou superior acabarão por ter a configuração menos privilegiada aplicada. Esta extensão foi lançada em novembro de 2024. Para evitar a atribuição automática do privilégio mínimo, bloqueie as atualizações de extensão após 1.1.2859.223.

A seção Privilégios SQL por recurso explica as permissões que a extensão concede quando você habilita os seguintes recursos:

Permissões de diretório

Caminho do diretório Permissões necessárias Details Feature
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer Controlo total Ficheiros DLL e EXE relacionados com extensões. Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings Controlo total Arquivo de configurações de extensão. Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status Controlo total Arquivo de status da extensão. Default
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer Controlo total Arquivos de log de extensão. Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json Controlo total Arquivo de pulsação de extensão. Default
%ProgramFiles%\Sql Server Extension Controlo total Arquivos de serviço de extensão. Default
<SystemDrive>\Windows\system32\extensionUpload Controlo total Necessário para gravar o arquivo de uso necessário para faturamento. Default
<SystemDrive>\Windows\system32\ExtensionHandler.log Controlo total Pasta pré-log criada por extensão. Default
<ProgramData>\AzureConnectedMachineAgent\Config Read Arc config files diretório. Default
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent Controlo total Necessário para escrever relatórios de avaliação e status. Default
Diretório de log SQL (conforme definido no registro) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log
Read Necessário para extrair informações do SQL vCores de logs SQL. Default
Diretório de backup SQL (conforme definido no registro) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup
ReadAndExecute/Write/Delete Necessário para backups Backup

1 Para obter mais informações, consulte Locais de arquivos e mapeamento do Registro.

Permissões do Registro

Chave base: HKEY_LOCAL_MACHINE

Chave de registo Permissão necessária Details Feature
SOFTWARE\Microsoft\Microsoft SQL Server Read Leia as propriedades do SQL Server como installedInstances. Default
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER Controlo total Microsoft Entra ID e Purview. Microsoft Entra ID

Purview
SOFTWARE\Microsoft\SystemCertificates Controlo total Necessário para o Microsoft Entra ID. Microsoft Entra ID
SYSTEM\CurrentControlSet\Services Read Nome da conta do SQL Server. Default
SOFTWARE\Microsoft\AzureDefender\SQL Read Status do Azure Defender e hora da última atualização. Default
SOFTWARE\Microsoft\SqlServerExtension Controlo total Valores relacionados com extensões. Default
SOFTWARE\Policies\Microsoft\Windows Ler e escrever Ativar a atualização automática do Windows via extensão. Atualizações automáticas

Permissões de grupo

NT SERVICE\SqlServerExtension é adicionado aos aplicativos de extensão de agente híbrido. Isso permite que o handshake do IMDS (Serviço de Metadados de Instância) do Azure recupere o token de identidade gerenciado por recurso de máquina necessário para se comunicar com os serviços de plano de dados do Azure, como o DPS (Serviço de Processamento de Dados) e o ponto de extremidade de telemetria para uso de cobrança, logs de extensão e coleta de dados do painel de monitoramento.

Permissões SQL

A NT SERVICE\SqlServerExtension conta é adicionada:

  • Como um login SQL para todas as instâncias da máquina
  • Como utilizador em cada base de dados

A extensão também concede permissões para objetos de instância e banco de dados à medida que os recursos são habilitados.

Note

As permissões mínimas dependem dos recursos habilitados. A extensão atualiza as permissões quando elas não são mais necessárias. Ele concede as permissões necessárias quando você habilita recursos. Os papéis não são usados no modo de menor privilégio.

Detalhes das permissões da conta NT SERVICE\SqlServerExtension

Caminho do Registro Permissão O risco associado às permissões se a NT SERVICE\SqlServerExtension conta for comprometida
SOFTWARE\Microsoft\Microsoft SQL Server Read A extensão pode ver quais versões do SQL Server estão instaladas.
SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLSERVER Controlo total Apenas necessário quando a autenticação do Microsoft Entra ou o Purview está ativado. A extensão pode modificar a configuração do SQL Server.
SOFTWARE\Microsoft\SystemCertificates Controlo total Apenas necessário quando a autenticação do Microsoft Entra está ativada. A extensão pode substituir as autoridades de certificação raiz confiáveis.
SYSTEM\CurrentControlSet\Services Read A extensão pode ver os nomes das contas de serviço.
SOFTWARE\Microsoft\AzureDefender\SQL Read A extensão pode aprender o status do Microsoft Defender e os tempos de atualização.
SOFTWARE\Microsoft\SqlServerExtension Controlo total A extensão pode alterar as configurações da extensão.
SOFTWARE\Policies\Microsoft\Windows Ler e escrever Apenas necessário quando a atualização automática está ativada. A extensão pode alterar as políticas do Windows Update e desativar o Device Guard, que controla a integridade do código e a segurança baseada em virtualização, exposição estendida devido a patches perdidos.

Privilégios SQL por recurso

A tabela a seguir lista o comportamento padrão para os recursos que controlam as permissões concedidas pela Extensão do Azure para SQL Server:

Feature Comportamento padrão
Permissões de extensão padrão Ativado por padrão
Backups automatizados Desabilitado por padrão
Grupos de disponibilidade Ativado por padrão
Avaliação das melhores práticas Desabilitado por padrão
Avaliação da migração Ativado por padrão
Migração de banco de dados Ativado por padrão
Restauração em um ponto específico no tempo Desabilitado por padrão
Purview Desabilitado por padrão

Permissões de extensão padrão

As seguintes permissões padrão são o requisito mínimo para o nível básico de funcionalidade fornecido pela Extensão do Azure para SQL Server e devem ser aplicadas:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Database master VIEW DATABASE STATE
Database msdb ALTER ANY SCHEMA
Database msdb CREATE TABLE
Database msdb CREATE TYPE
Database msdb DB DATA READER
Database msdb DB DATA WRITER
Database msdb EXECUTE
Database msdb SELECT dbo.backupfile
Database msdb SELECT dbo.backupmediaset
Database msdb SELECT dbo.backupmediafamily
Database msdb SELECT dbo.backupset
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobactivity
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.syssessions
Database msdb SELECT dbo.sysoperators
Database msdb SELECT dbo.suspectpages
Server CONNECT ANY DATABASE
Server CONNECT SQL
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE

Backups automatizados

Os backups automatizados são desativados por padrão. A extensão concede permissões de backup para qualquer banco de dados que tenha backups automatizados habilitados. Habilitar o recurso de backup também habilita o recurso de restauração point-in-time , portanto, a permissão para criar um banco de dados também é concedida.

Se os recursos estiverem habilitados, a extensão concede automaticamente as seguintes permissões:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Database Todas as bases de dados DB BACKUP OPERATOR
Server CREATE ANY DATABASE
Server master DB CREATOR

Grupos de disponibilidade

Os recursos de descoberta e gerenciamento de grupos de disponibilidade, como failover, são habilitados por padrão, mas você pode desativá-los por meio do AvailabilityGroupDiscovery sinalizador de recursos.

Se o recurso estiver habilitado, a extensão concede automaticamente as seguintes permissões:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Server ALTER ANY AVAILABILITY GROUP
Server VIEW ANY DEFINITION

Avaliação das melhores práticas

A avaliação de práticas recomendadas é desabilitada por padrão.

Se o recurso estiver habilitado, a extensão concede automaticamente as seguintes permissões:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Database master SELECT
Database master VIEW DATABASE STATE
Database msdb SELECT
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE
StoredProcedure EnumErrorLogsSP EXECUTE
StoredProcedure ReadErrorLogsSP EXECUTE

Migração de bases de dados

A funcionalidade de migração de base de dados está ativada por defeito e só requer as permissões listadas nas permissões de extensão por defeito, embora algumas permissões sejam concedidas justamente a tempo quando é realizada uma ação específica de migração.

As seguintes ações requerem permissões adicionais que a extensão concede just-in-time:

Note

Utilizadores com as permissões SqlServerAvailabilityGroups_CreateManagedInstanceLink, SqlServerAvailabilityGroups_failoverMiLink e SqlServerAvailabilityGroups_deleteMiLink em Azure podem realizar ações na página Migração da base de dados durante o processo de migração que elevem as permissões de SQL Server da conta usada pela extensão, incluindo o papel fixo de servidor sysadmin.

Na etapa Migrar dados , a extensão concede permissões just-in-time quando você seleciona Iniciar migração de dados na guia Revisar + Criar para uma migração de link de Instância Gerenciada. A conta de serviço necessita de permissões elevadas para configurar o grupo de disponibilidade distribuída (AG). Revoga permissões assim que o AG distribuído é criado e a implementação visível no portal do Azure está no estado concluído. Se outra migração estiver a correr ao mesmo tempo, a extensão não revoga permissões até que o último AG distribuído seja criado.

A ação para criar uma migração de ligação Managed Instance adquire as seguintes permissões durante o pedido de criação:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server CREATE ENDPOINT
Server ALTER ANY ENDPOINT
Server CREATE CERTIFICATE
Database master IMPERSONATE ON USER::[dbo]

Na etapa Monitor e substituição , a extensão concede permissões just-in-time quando você seleciona a opção de substituição completa para uma migração de link de instância gerenciada. A extensão revoga as permissões após a conclusão da substituição.

A ação para completar o cutover de uma migração de ligação Managed Instance adquire as seguintes permissões durante o pedido completo:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin1

1 Se o privilégio mínimo estiver ativado, a ação de corte completo também concede ao administrador do sistema um papel fixo de servidor à NT SERVICE\SqlServerExtension conta durante o corte. Este papel é necessário para fazer failover sobre o AG distribuído para a transição para o Azure SQL Managed Instance.

Na etapa Monitor e transferência, a extensão concede permissões just-in-time quando você seleciona a opção Cancelar migração para uma migração de link de Instância Gerenciada. A extensão revoga as permissões depois que a migração é cancelada.

A ação para cancelar uma migração de ligação Managed Instance adquire as seguintes permissões durante o pedido de cancelamento:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin1

1 Se o privilégio mínimo estiver ativado, a ação de cancelar também concede ao administrador do sistema um papel fixo de servidor à NT SERVICE\SqlServerExtension conta durante o pedido de cancelamento. Este papel é necessário ao eliminar um AG distribuído.

Avaliação da migração

As avaliações de migração são habilitadas por padrão.

Se o recurso estiver desativado, a extensão revogará as seguintes permissões, a menos que outros recursos habilitados exijam isso:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Database Todas as bases de dados SELECT sys.sql_expression_dependencies
Database msdb EXECUTE dbo.agent_datetime
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.sysmail_account
Database msdb SELECT dbo.sysmail_profile
Database msdb SELECT dbo.sysmail_profileaccount
Database msdb SELECT dbo.syssubsystems

Purview

Os recursos do Purview são desativados por padrão.

Se o recurso estiver habilitado, a extensão concede automaticamente as seguintes permissões:

Tipo de objeto Nome do banco de dados ou objeto Privilege
Database Todas as bases de dados EXECUTE
Database Todas as bases de dados SELECT
Server CONNECT ANY DATABASE
Server VIEW ANY DATABASE

Permissões SQL just-in-time

Algumas permissões SQL só são atribuídas quando são necessárias para realizar uma ação específica, e são revogadas assim que a operação que requer as permissões termina. Se a revogação não for executada, um trabalho de limpeza em segundo plano que seja executado a cada 50 minutos revoga automaticamente permissões obsoletas.

As permissões just-in-time são atribuídas à conta de serviço:

  • NT SERVICE\SqlServerExtension se o privilégio mínimo estiver habilitado
  • Conta do sistema local se o privilégio mínimo estiver desativado.

Atualmente, o seguinte recurso usa permissões just-in-time:

Permissões adicionais

A conta de serviço requer as seguintes permissões:

  • Aceda ao serviço de extensão e configure a recuperação automática.
  • Iniciar sessão como serviço.