Implementieren der SQL Server-Agent-SicherheitImplement SQL Server Agent Security

SQL ServerSQL Server Agent ermöglicht dem Datenbankadministrator, jeden Auftragsschritt in einem Sicherheitskontext auszuführen, dem lediglich die Berechtigungen erteilt wurden, die zum Durchführen dieses Auftragsschritts erforderlich sind, wie von einem SQL ServerSQL Server -Agent-Proxy festgelegt. Agent proxy. Um Berechtigungen für einen bestimmten Auftragsschritt festzulegen, erstellen Sie einen Proxy mit den erforderlichen Berechtigungen und weisen dann diesen Proxy dem Auftragsschritt zu.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. Ein Proxy kann für mehrere Auftragsschritte angegeben werden.A proxy can be specified for more than one job step. Für Auftragsschritte, für die dieselben Berechtigungen erforderlich sind, verwenden Sie denselben Proxy.For job steps that require the same permissions, you use the same proxy.

Im folgenden Abschnitt wird erläutert, welche Datenbankrolle Sie Benutzern erteilen müssen, damit sie Aufträge mithilfe des SQL ServerSQL Server -Agents erstellen oder ausführen können.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.

Erteilen des Zugriffs auf den SQL Server-AgentGranting Access to SQL Server Agent

Um den SQL ServerSQL Server -Agent zu verwenden, müssen die Benutzer Mitglied mindestens einer der folgenden festen Datenbankrollen sein:To use SQL ServerSQL Server Agent, users must be a member of one or more of the following fixed database roles:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

Diese Rollen werden in der msdb -Datenbank gespeichert.These roles are stored in the msdb database. Standardmäßig ist kein Benutzer Mitglied dieser Datenbankrollen.By default, no user is a member of these database roles. Die Mitgliedschaft in diesen Rollen muss explizit erteilt werden.Membership in these roles must be granted explicitly. Benutzer, die Mitglieder der festen Serverrolle sysadmin sind, haben vollen Zugriff auf den SQL ServerSQL Server -Agent und müssen nicht Mitglied dieser festen Datenbankrollen sein, um den SQL ServerSQL Server -Agent verwenden zu können.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. Wenn ein Benutzer nicht Mitglied einer dieser Datenbankrollen oder der sysadmin -Rolle ist, steht ihm der SQL ServerSQL Server -Agent-Knoten nicht zur Verfügung, wenn er mithilfe von SQL ServerSQL Server eine Verbindung mit SQL Server Management StudioSQL Server Management Studioherstellt.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.

Die Mitglieder dieser Datenbankrollen können Aufträge anzeigen und ausführen, deren Besitzer sie sind, und Auftragsschritte erstellen, die als bereits vorhandenes Proxykonto ausgeführt werden.Members of these database roles can view and execute jobs that they own, and create job steps that run as an existing proxy account. Weitere Informationen zu den einzelnen Berechtigungen, die jeder dieser festen Rollen zugeordnet sind, finden Sie unter Feste Datenbankrollen des SQL Server-Agents.For more information about the specific permissions that are associated with each of these roles, see SQL Server Agent Fixed Database Roles.

Die Mitglieder der festen Serverrolle sysadmin haben die Berechtigung zum Erstellen, Ändern und Löschen von Proxykonten.Members of the sysadmin fixed server role have permission to create, modify, and delete proxy accounts. Die Mitglieder der sysadmin -Rolle haben die Berechtigung zum Erstellen von Auftragsschritten, die keinen Proxy angeben, sondern stattdessen als das SQL ServerSQL Server -Agent-Dienstkonto ausgeführt werden, bei dem es sich um das Konto handelt, das zum Starten des SQL ServerSQL Server -Agents verwendet wird.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.

RichtlinienGuidelines

Befolgen Sie diese Richtlinien, um die Sicherheit Ihrer SQL ServerSQL Server -Agent-Implementierung zu verbessern:Follow these guidelines to improve the security of your SQL ServerSQL Server Agent implementation:

  • Erstellen Sie dedizierte Benutzerkonten speziell für Proxys, und verwenden Sie diese Proxybenutzerkonten nur zum Ausführen von Auftragsschritten.Create dedicated user accounts specifically for proxies, and only use these proxy user accounts for running job steps.

  • Erteilen Sie die erforderlichen Berechtigungen lediglich den Proxybenutzerkonten.Only grant the necessary permissions to proxy user accounts. Erteilen Sie lediglich die Berechtigungen, die zum Ausführen der Auftragsschritte erforderlich sind, die einem bestimmten Proxykonto zugewiesen sind.Grant only those permissions actually required to run the job steps that are assigned to a given proxy account.

  • Führen Sie den SQL ServerSQL Server -Agent-Dienst nicht unter einem Microsoft Windows-Konto aus, das Mitglied der Windows-Gruppe Administratoren ist.Do not run the SQL ServerSQL Server Agent service under a Microsoft Windows account that is a member of the Windows Administrators group.

  • Proxys sind nur so sicher wie der SQL ServerSQL Server -Anmeldeinformationenspeicher.Proxies are only as secure as the SQL ServerSQL Server credential store.

  • Wenn Benutzerschreibvorgänge in das NT-Ereignisprotokoll schreiben können, können sie Warnungen über den SQL ServerSQL Server -Agent auslösen.If user write operations can write to the NT Event log, they can raise alerts via SQL ServerSQL Server Agent.

  • Geben Sie das NT-Adminkonto nicht als Dienst- oder Proxykonto an.Do not specify the NT Admin account as a service account or proxy account.

  • Hinweis: SQL ServerSQL Server und der SQL ServerSQL Server -Agent können gegenseitig auf ihre Ressourcen zugreifen.Note that SQL ServerSQL Server and SQL ServerSQL Server Agent have access to each other’s assets. Die beiden Dienste verwenden einen einzelnen Prozessraum, und der SQL ServerSQL Server -Agent fungiert mit der Rolle "sysadmin" auf dem SQL ServerSQL Server -Dienst.The two services share a single process space and SQL ServerSQL Server Agent is a sysadmin on the SQL ServerSQL Server service.

  • Wenn für ein TSX ein MSX eingetragen wird, erhält die MSX-Rolle "sysadmins" die vollständige Kontrolle über die TSX-Instanz von SQL ServerSQL Server.When a TSX enlists with an MSX, the MSX sysadmins gets total control over the TSX instance of SQL ServerSQL Server.

  • ACE ist eine Erweiterung und kann sich nicht selbst aufrufen.ACE is an extension and cannot invoke itself. ACE wird von der "Chainer ScenarioEngine.exe" (auch als bekannt als "Microsoft.SqlServer.Chainer.Setup.exe") oder einem anderen Hostprozess aufgerufen.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 hängt von den folgenden Konfigurations-DLL-Elementen ab, die sich im Besitz von SSDP befinden, da diese DLL-APIs von ACE aufgerufen werden: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, einschließlich neuer SCO-Überprüfungen für virtuelle KontenSCO – 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

    • Erweiterung – Microsoft.SqlServer.Configuration.ConfigExtension.dllExtension – Microsoft.SqlServer.Configuration.ConfigExtension.dll

Siehe auchSee Also

Verwenden vordefinierter RollenUsing Predefined Roles
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL)
Sicherheit und Schutz (Datenbankmodul)Security and Protection (Database Engine)