Erstellen eines Proxys für den SQL Server-Agent
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 können.
Ein SQL Server-Agent-Proxykonto definiert einen Sicherheitskontext, in dem ein Auftragsschritt ausgeführt werden kann. Jeder Proxy entspricht einem Satz Sicherheitsanmeldeinformationen. Um Berechtigungen für einen bestimmten Auftragsschritt festzulegen, erstellen Sie einen Proxy mit den erforderlichen Berechtigungen für ein Subsystem des SQL Server-Agents und weisen dann diesen Proxy dem Auftragsschritt zu.
In Azure SQL Managed Instance werden derzeit die meisten, aber nicht alle, SQL Server-Agent-Features unterstützt. Ausführliche Informationen finden Sie unter Unterschiede bei T-SQL zwischen SQL Server und Azure SQL Managed Instance bzw. SQL-Agent-Auftragseinschränkungen in SQL Managed Instance.
Vorbereitungen
Einschränkungen
Sie müssen, falls keine Anmeldeinformationen vorhanden sind, Anmeldeinformationen erstellen, bevor Sie ein Proxykonto erstellen.
VonSQL Server -Agent-Proxys werden Anmeldeinformationen zum Speichern von Informationen zu Windows-Benutzerkonten verwendet. Der in den Anmeldeinformationen angegebene Benutzer muss über die Berechtigung „Auf diesen Computer vom Netzwerk aus zugreifen“ (
SeNetworkLogonRight
) auf dem Computer verfügen, auf dem SQL Server ausgeführt wird.SQL Server -Agent wird der Subsystemzugriff für einen Proxy überprüft und der Zugriff auf den Proxy jedes Mal dann gewährt, wenn der Auftragsschritt ausgeführt wird. Wenn der Proxyzugriff auf das Subsystem nicht mehr länger möglich ist, erzeugt der Auftragsschritt einen Fehler. Ansonsten wird vom SQL Server -Agent die Identität des Benutzers angenommen, der im Proxy angegeben ist und von dem der Auftragsschritt ausgeführt wird. Eine Liste der Proxysubsysteme finden Sie unter sp_grant_proxy_to_subsystem.
Die Berechtigungen für den Benutzer werden nicht durch das Erstellen eines Proxys geändert, der in den Anmeldeinformationen für den Proxy angegeben ist. Sie können beispielsweise einen Proxy für einen Benutzer erstellen, der über keine Verbindungsberechtigung für eine Instanz von SQL Server verfügt. In diesem Fall kann von Auftragsschritten, die diesen Proxy verwenden, keine Verbindung mit SQL Server hergestellt werden.
Wenn die Anmeldung für den Benutzer Zugriffsrecht auf den Proxy hat, oder der Benutzer zu einer Rolle mit Zugriffsrechten auf den Proxy gehört, kann der Benutzer den Proxy in einem Auftragsschritt verwenden.
Sicherheit
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin haben die Berechtigung zum Erstellen, Ändern oder Löschen von Proxykonten. Benutzer, die nicht Mitglieder der festen Serverrolle sysadmin sind, müssen zur Verwendung von Proxys einer der folgenden festen Datenbankrollen des SQL Server-Agents in der
msdb
-Datenbank hinzugefügt werden: SQLAgentUserRole, SQLAgentReaderRole oder SQLAgentOperatorRole.Erfordert die ALTER ANY CREDENTIAL -Berechtigung, wenn für den Proxy zusätzlich eine Anmeldeinformation erstellt wird.
Verwenden von SQL Server Management Studio (SSMS)
So erstellen Sie einen Proxy für den SQL Server-Agent
Wählen Sie im Objekt-Explorer das Pluszeichen aus, um den Server zu erweitern, auf dem Sie einen Proxy auf dem SQL Server-Agent erstellen möchten.
Klicken Sie auf das Pluszeichen, um SQL Server-Agentzu erweitern.
Klicken Sie mit der rechten Maustaste auf den Ordner Proxys , und wählen Sie dann Neuer Proxyaus.
Geben Sie in das Dialogfeld Neues Proxykonto auf der Seite Allgemein den Namen des neuen Proxykontos in das Feld Proxyname ein.
Geben Sie im Feld Anmeldeinformationsname den Namen der Sicherheitsanmeldeinformationen ein, die vom Proxykonto verwendet werden.
Geben Sie im Feld Beschreibung eine Beschreibung für das Proxykonto ein.
Wählen Sie unter Folgenden Subsystemen gegenüber aktivdas bzw. die entsprechenden Subsysteme für diesen Proxy aus.
Auf der Seite Prinzipale können Sie Anmeldenamen oder Rollen hinzufügen oder entfernen, um den Zugriff auf das Proxykonto zu erteilen oder zu entziehen.
Wenn Sie fertig sind, wählen Sie OK aus.
Verwenden von Transact-SQL
So erstellen Sie einen Proxy für den SQL Server-Agent
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Das folgende Skript erstellt eine Anmeldeinformation namens
CatalogApplicationCredential
sowie den ProxyCatalog application proxy
, weist dem Proxy die AnmeldeinformationenCatalogApplicationCredential
zu und gewährt ihm Zugriff auf das Subsystem für ActiveX-Skripts. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns -- the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to -- the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO