Erstellen eines SQL Server-Agent-Proxys
Gilt für:SQL Server-
In diesem Artikel wird beschrieben, wie Sie einen SQL Server-Agent-Proxy in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellen.
Ein SQL Server-Agent-Proxykonto definiert einen Sicherheitskontext, in dem ein Auftragsschritt ausgeführt werden kann. Jeder Proxy entspricht einer Sicherheitsberechtigung. Um Berechtigungen für einen bestimmten Auftragsschritt festzulegen, erstellen Sie einen Proxy mit den erforderlichen Berechtigungen für ein SQL Server-Agent-Subsystem, und weisen Sie diesen Proxy dem Auftragsschritt zu.
In azure SQL Managed Instancewerden die meisten, aber nicht alle SQL Server-Agent-Features derzeit unterstützt. Weitere Informationen finden Sie unter T-SQL-Unterschiede zwischen Azure SQL Managed Instance T-SQL und SQL Server oder SQL Agent-Jobbeschränkungen in SQL Managed Instance.
Begrenzungen
Sie müssen eine Berechtigung erstellen, bevor Sie einen Proxy erstellen, falls noch keine Berechtigung verfügbar ist.
SQL Server-Agent-Proxys verwenden Anmeldeinformationen zum Speichern von Informationen zu Windows-Benutzerkonten. Der in den Anmeldeinformationen angegebene Benutzer muss über die Berechtigung "Auf diesen Computer aus dem Netzwerk zugreifen" (SeNetworkLogonRight
) auf dem Computer verfügen, auf dem SQL Server ausgeführt wird.
DER SQL Server-Agent überprüft den Subsystemzugriff auf einen Proxy und gewährt bei jeder Ausführung des Auftragsschritts Zugriff auf den Proxy. Wenn der Proxy keinen Zugriff mehr auf das Subsystem hat, schlägt der Auftragsschritt fehl. Andernfalls agiert der SQL Server-Agent als der im Proxy angegebene Benutzer und führt den Auftragsschritt aus. Eine Liste der Proxy-Subsysteme finden Sie unter sp_grant_proxy_to_subsystem.
Die Erstellung eines Proxys ändert nicht die Berechtigungen für den Benutzer, der in den Anmeldeinformationen für den Proxy angegeben ist. Sie können beispielsweise einen Proxy für einen Benutzer erstellen, der nicht über die Berechtigung zum Herstellen einer Verbindung mit einer Instanz von SQL Server verfügt. In diesem Fall können Auftragsschritte, die diesen Proxy verwenden, keine Verbindung mit SQL Server herstellen.
Wenn die Anmeldung für den Benutzer Zugriff auf den Proxy hat oder der Benutzer zu einer beliebigen Rolle mit Zugriff auf den Proxy gehört, kann der Benutzer den Proxy in einem Auftragsschritt verwenden.
Erlaubnisse
Nur Mitglieder des sysadmin feste Serverrolle verfügen über die Berechtigung zum Erstellen, Ändern oder Löschen von Proxykonten. Benutzer, die keine Mitglieder der sysadmin- festen Serverrolle sind, müssen einer der folgenden festen SQL Server-Agent-Datenbankrollen in der datenbank msdb
hinzugefügt werden, um Proxys zu verwenden: SQLAgentUserRole, SQLAgentReaderRoleoder SQLAgentOperatorRole.
Erfordert ALTER ANY CREDENTIAL
Berechtigung, wenn zusätzlich zum Proxy anmeldeinformationen erstellt werden.
Verwenden von SQL Server Management Studio (SSMS)
Wählen Sie im Objekt-Explorerdas Pluszeichen aus, um den Server zu erweitern, auf dem Sie einen Proxy im SQL Server-Agent erstellen möchten.
Wählen Sie das Pluszeichen aus, um SQL Server Agentzu erweitern.
Klicken Sie mit der rechten Maustaste auf den Ordner Proxys, und wählen Sie Neuer Proxyaus.
Geben Sie im Dialogfeld Neues Proxykonto auf der Seite Allgemeine den Namen des Proxykontos im Feld Proxynamen ein.
Geben Sie im Feld Anmeldeinformationsname den Namen der Sicherheitsanmeldeinformationen ein, die das Proxykonto verwendet.
Geben Sie im Feld Beschreibung eine Beschreibung für das Proxykonto ein.
Wählen Sie unter Aktiv für die folgenden Subsystemedas entsprechende Subsystem oder die entsprechenden Subsysteme für diesen Proxy aus.
Fügen Sie auf der Seite Prinzipale Anmeldeinformationen oder Rollen hinzu oder entfernen Sie diese, um den Zugriff auf das Proxykonto zu gewähren oder zu entziehen.
Wenn Sie fertig sind, wählen Sie OKaus.
Verwenden Sie Transact-SQL
Das folgende Skript erstellt eine Anmeldeinformation namens CatalogApplicationCredential
, erstellt Proxy-Catalog application proxy
und weist ihm die Anmeldeinformationen CatalogApplicationCredential
zu und gewährt dem Proxyzugriff auf das ActiveX Scripting-Subsystem.
Erstellen Sie Anmeldedaten
CatalogApplicationCredential
.USE msdb; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO
Erstellen Sie Proxy-
Catalog application proxy
, und weisen Sie ihm die AnmeldeinformationenCatalogApplicationCredential
zu.EXECUTE dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential'; GO
Gewähren Sie dem Proxy
Catalog application proxy
Zugriff auf das ActiveX Scripting-Subsystem.EXECUTE dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2; GO