Freigeben über


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)

  1. 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.

  2. Wählen Sie das Pluszeichen aus, um SQL Server Agentzu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Proxys, und wählen Sie Neuer Proxyaus.

  4. Geben Sie im Dialogfeld Neues Proxykonto auf der Seite Allgemeine den Namen des Proxykontos im Feld Proxynamen ein.

  5. Geben Sie im Feld Anmeldeinformationsname den Namen der Sicherheitsanmeldeinformationen ein, die das Proxykonto verwendet.

  6. Geben Sie im Feld Beschreibung eine Beschreibung für das Proxykonto ein.

  7. Wählen Sie unter Aktiv für die folgenden Subsystemedas entsprechende Subsystem oder die entsprechenden Subsysteme für diesen Proxy aus.

  8. 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.

  9. 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.

  1. Erstellen Sie Anmeldedaten CatalogApplicationCredential.

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. Erstellen Sie Proxy-Catalog application proxy, und weisen Sie ihm die Anmeldeinformationen CatalogApplicationCredential zu.

    EXECUTE dbo.sp_add_proxy
        @proxy_name = 'Catalog application proxy',
        @enabled = 1,
        @description = 'Maintenance tasks on catalog application.',
        @credential_name = 'CatalogApplicationCredential';
    GO
    
    
  3. 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