Een SQL Server Agent-proxy maken
van toepassing op:SQL Server-
In dit artikel wordt beschreven hoe u een SQL Server Agent-proxy maakt in SQL Server met behulp van SQL Server Management Studio of Transact-SQL.
Een SQL Server Agent-proxyaccount definieert een beveiligingscontext waarin een taakstap kan worden uitgevoerd. Elke proxy komt overeen met een beveiligingsreferentie. Als u machtigingen wilt instellen voor een bepaalde taakstap, maakt u een proxy met de vereiste machtigingen voor een SUBsysteem van sql Server Agent en wijst u die proxy vervolgens toe aan de taakstap.
Op Azure SQL Managed Instanceworden de meeste, maar niet alle FUNCTIES van SQL Server Agent momenteel ondersteund. Zie T-SQL-verschillen tussen Azure SQL Managed Instance en SQL Server of SQL Agent-taakbeperkingen in Azure SQL Managed Instance voor meer informatie.
Beperkingen
U moet een referentie maken voordat u een proxy maakt als deze nog niet beschikbaar is.
SQL Server Agent-proxies gebruiken inloggegevens om informatie over Windows-gebruikersaccounts op te slaan. De gebruiker die in de aanmeldgegevens is opgegeven, moet de machtiging 'Toegang tot deze computer via het netwerk' (SeNetworkLogonRight
) hebben op de computer waarop SQL Server wordt uitgevoerd.
SQL Server Agent controleert de subsysteemtoegang voor een proxy en geeft telkens wanneer de taakstap wordt uitgevoerd toegang tot de proxy. Als de proxy geen toegang meer heeft tot het subsysteem, mislukt de taakstap. In dat geval imiteert SQL Server Agent de gebruiker die is opgegeven in de proxy en voert de taakstap uit. Zie sp_grant_proxy_to_subsystemvoor een lijst met proxysubsystemen.
Het maken van een proxy wijzigt niet de machtigingen voor de gebruiker die is opgegeven in de referentie voor de proxy. U kunt bijvoorbeeld een proxy maken voor een gebruiker die geen machtiging heeft om verbinding te maken met een exemplaar van SQL Server. In dit geval kunnen taakstappen die gebruikmaken van die proxy geen verbinding maken met SQL Server.
Als de aanmelding voor de gebruiker toegang heeft tot de proxy of als de gebruiker deel uitmaakt van een rol met toegang tot de proxy, kan de gebruiker de proxy in een taakstap gebruiken.
Machtigingen
Alleen leden van de sysadmin vaste serverrol zijn gemachtigd om proxyaccounts te maken, te wijzigen of te verwijderen. Gebruikers die geen lid zijn van de sysadmin vaste serverrol, moeten worden toegevoegd aan een van de volgende vaste SQL Server Agent-databaserollen in de msdb
-database voor het gebruik van proxy's: SQLAgentUserRole, SQLAgentReaderRoleof SQLAgentOperatorRole.
Vereist ALTER ANY CREDENTIAL
machtiging als u naast de proxy een referentie maakt.
SQL Server Management Studio (SSMS) gebruiken
Selecteer in Objectverkennerhet plusteken om de server uit te vouwen waarop u een proxy wilt maken in SQL Server Agent.
Selecteer het plusteken om SQL Server Agent-uit te vouwen.
Klik met de rechtermuisknop op de map proxy's en selecteer nieuwe proxy.
Voer in het dialoogvenster Nieuw proxyaccount, op de pagina Algemeen, de naam van het proxyaccount in het vak Proxynaam in.
Voer in het vak referentienaam de naam in van de beveiligingsreferentie die door het proxyaccount wordt gebruikt.
Voer in het vak Beschrijving een beschrijving in voor het proxyaccount
Selecteer onder Actief voor de volgende subsystemenhet juiste subsysteem of de juiste subsystemen voor deze proxy.
Voeg op de pagina Principals aanmeldingen of rollen toe of verwijder deze om toegang tot het proxyaccount te verlenen of te verwijderen.
Wanneer u klaar bent, selecteert u OK.
Gebruik Transact-SQL
Met het volgende script maakt u een bewijs met de naam CatalogApplicationCredential
, creƫert u de proxy Catalog application proxy
en wijst u het bewijs CatalogApplicationCredential
eraan toe, en verleent u de proxy toegang tot het ActiveX-scripting-subsysteem.
Referentie maken
CatalogApplicationCredential
.USE msdb; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO
Maak proxy-
Catalog application proxy
en wijs de referentieCatalogApplicationCredential
toe.EXECUTE dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential'; GO
Ververleent de proxy
Catalog application proxy
toegang tot het ActiveX Scripting-subsysteem.EXECUTE dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2; GO