Implementare la sicurezza di SQL Server AgentImplement SQL Server Agent Security

SQL ServerSQL Server Agent consente all'amministratore del database di eseguire ciascun passaggio di un processo in un contesto di sicurezza in cui sono disponibili solo le autorizzazioni necessarie all'esecuzione di tale passaggio e che viene determinato da un proxy di SQL ServerSQL Server Agent. Agent lets the database administrator run each job step in a security context that has only the permissions required to perform that job step, which is determined by a SQL ServerSQL Server Agent proxy. Per impostare le autorizzazioni per un particolare passaggio di un processo, è necessario creare un proxy che disponga delle autorizzazioni necessarie e quindi assegnare questo proxy al passaggio del processo.To set the permissions for a particular job step, you create a proxy that has the required permissions and then assign that proxy to the job step. È possibile specificare un proxy per più di un passaggio di processo.A proxy can be specified for more than one job step. Per i passaggi che richiedono le medesime autorizzazioni, viene utilizzato lo stesso proxy.For job steps that require the same permissions, you use the same proxy.

Nella sezione che segue viene spiegato quale ruolo di database concedere agli utenti affinché possano creare o eseguire processi utilizzando SQL ServerSQL Server Agent.The following section explains what database role you must grant to users so they can create or execute jobs by using SQL ServerSQL Server Agent.

Concessione dell'accesso a SQL Server AgentGranting Access to SQL Server Agent

Per poter utilizzare SQL ServerSQL Server Agent, l'utente deve essere membro di uno o più dei seguenti ruoli predefiniti di database:To use SQL ServerSQL Server Agent, users must be a member of one or more of the following fixed database roles:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

Questi ruoli sono archiviati nel database msdb .These roles are stored in the msdb database. Per impostazione predefinita, nessun utente è membro di questi ruoli di database.By default, no user is a member of these database roles. L'appartenenza a questi ruoli deve essere concessa esplicitamente.Membership in these roles must be granted explicitly. Gli utenti membri del ruolo di server predefinito sysadmin hanno accesso completo a SQL ServerSQL Server Agent e non hanno bisogno di essere membri di questi ruoli di database predefiniti per poter usare SQL ServerSQL Server Agent.Users who are members of the sysadmin fixed server role have full access to SQL ServerSQL Server Agent, and do not need to be a member of these fixed database roles to use SQL ServerSQL Server Agent. Se un utente non è membro di uno di questi ruoli di database o del ruolo sysadmin , il nodo di SQL ServerSQL Server Agent non è disponibile quando l'utente si connette a SQL ServerSQL Server tramite SQL Server Management StudioSQL Server Management Studio.If a user is not a member of one of these database roles or of the sysadmin role, the SQL ServerSQL Server Agent node is not available to them when they connect to SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio.

I membri di questi ruoli di database possono visualizzare ed eseguire processi di cui sono proprietari e possono creare passaggi di processo eseguibili come un account proxy esistente.Members of these database roles can view and execute jobs that they own, and create job steps that run as an existing proxy account. Per altre informazioni sulle autorizzazioni specifiche associate a ognuno di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.For more information about the specific permissions that are associated with each of these roles, see SQL Server Agent Fixed Database Roles.

I membri del ruolo predefinito del server sysadmin sono autorizzati a creare, modificare ed eliminare account proxy.Members of the sysadmin fixed server role have permission to create, modify, and delete proxy accounts. I membri del ruolo sysadmin sono autorizzati a creare passaggi di processo che non specificano un proxy ma che invece vengono eseguiti come account di servizio di SQL ServerSQL Server Agent, vale a dire l'account usato per avviare SQL ServerSQL Server Agent.Members of the sysadmin role have permission to create job steps that do not specify a proxy, but instead run as the SQL ServerSQL Server Agent service account, which is the account that is used to start SQL ServerSQL Server Agent.

IndicazioniGuidelines

Per migliorare la sicurezza dell'implementazione di SQL ServerSQL Server Agent, attenersi alle seguenti indicazioni generali:Follow these guidelines to improve the security of your SQL ServerSQL Server Agent implementation:

  • Creare appositi account utente dedicati per i proxy e utilizzare questi account solo per eseguire passaggi di processo.Create dedicated user accounts specifically for proxies, and only use these proxy user accounts for running job steps.

  • Concedere le autorizzazioni necessarie solo agli account utente proxy.Only grant the necessary permissions to proxy user accounts. Concedere solo le autorizzazioni effettivamente richieste per eseguire i passaggi di processo assegnati a un particolare account proxy.Grant only those permissions actually required to run the job steps that are assigned to a given proxy account.

  • Non eseguire il servizio SQL ServerSQL Server Agent usando un account Microsoft Windows che è membro del gruppo Administrators di Windows.Do not run the SQL ServerSQL Server Agent service under a Microsoft Windows account that is a member of the Windows Administrators group.

  • I proxy hanno lo stesso livello di sicurezza dell'archivio credenziali di SQL ServerSQL Server .Proxies are only as secure as the SQL ServerSQL Server credential store.

  • Se le operazioni di scrittura dell'utente possono scrivere nel registro eventi NT, possono generare avvisi tramite SQL ServerSQL Server Agent.If user write operations can write to the NT Event log, they can raise alerts via SQL ServerSQL Server Agent.

  • Non specificare l'account amministratore NT come account di servizio o account proxy.Do not specify the NT Admin account as a service account or proxy account.

  • Notare che SQL ServerSQL Server e SQL ServerSQL Server Agent dispongono dell'accesso reciproco alle proprie risorse.Note that SQL ServerSQL Server and SQL ServerSQL Server Agent have access to each other’s assets. I due servizi condividono un unico spazio di elaborazione e SQL ServerSQL Server Agent è un sysadmin sul servizio SQL ServerSQL Server .The two services share a single process space and SQL ServerSQL Server Agent is a sysadmin on the SQL ServerSQL Server service.

  • Quando un processo TSX viene integrato con un processo MSX, sysadmins di MSX assume il controllo totale dell'istanza TSX di SQL ServerSQL Server.When a TSX enlists with an MSX, the MSX sysadmins gets total control over the TSX instance of SQL ServerSQL Server.

  • Il processo ACE è un'estensione e non può richiamare se stesso.ACE is an extension and cannot invoke itself. ACE viene richiamato da Chainer ScenarioEngine.exe, anche noto come Microsoft.SqlServer.Chainer.Setup.exe, o può essere richiamato da un altro processo host.ACE is invoked by Chainer ScenarioEngine.exe – also known as Microsoft.SqlServer.Chainer.Setup.exe – or it can be invoked by another host process.

  • ACE dipende dalle DLL di configurazione seguenti di proprietà di SSDP, perché le API delle DLL vengono richiamate da ACE:ACE depends on the following configuration DLL’s owned by SSDP, because those API’s of DLL’s are called by ACE:

    • SCO : Microsoft.SqlServer.Configuration.Sco.dll, incluse le nuove convalide SCO per gli account virtualiSCO – Microsoft.SqlServer.Configuration.Sco.dll, including new SCO validations for virtual accounts

    • Cluster : Microsoft.SqlServer.Configuration.Cluster.dllCluster – Microsoft.SqlServer.Configuration.Cluster.dll

    • SFC : Microsoft.SqlServer.Configuration.SqlConfigBase.dllSFC – Microsoft.SqlServer.Configuration.SqlConfigBase.dll

    • Extension : Microsoft.SqlServer.Configuration.ConfigExtension.dllExtension – Microsoft.SqlServer.Configuration.ConfigExtension.dll

Vedere ancheSee Also

Utilizzo dei ruoli predefinitiUsing Predefined Roles
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL)
Sicurezza e protezione (Motore di database)Security and Protection (Database Engine)