Identiteits- en toegangsbeheer (Service Broker)

Van toepassing op:SQL ServerAzure SQL Managed Instance

De meeste Service Broker-toepassingen die betrekking hebben op meer dan één exemplaar, worden uitgevoerd in de beveiligingscontext van een database-principal die specifiek voor de toepassing is gemaakt. Deze database-principals moeten de minimale machtigingen hebben die nodig zijn om de taken uit te voeren die de toepassing uitvoert.

De volgende overwegingen zijn van toepassing op database-principals die zijn gemaakt voor Service Broker-toepassingen:

  • Externe autorisatie van Service Broker is van toepassing wanneer een externe Service Broker-toepassing verbinding maakt met SQL Server en een bericht aan het exemplaar levert. De database-principal die is opgegeven voor externe autorisatie, moet machtigingen hebben CONNECT in de database die als host fungeert voor de initiërende service en moet machtigingen hebben SEND voor de initiërende service zelf. De gebruiker moet eigenaar zijn van het certificaat dat wordt gebruikt voor verificatie. Er zijn geen vereisten voor de gebruiker om eigenaar te zijn van andere objecten, om andere machtigingen te hebben of om u aan te melden met een ander mechanisme.

  • Om een database-principal te laten beginnen met een gesprek, moet die principal machtigingen hebben RECEIVE voor de wachtrij voor de initiërende service.

  • De database-principal die eigenaar is van de initiërende service, moet machtigingen hebben SEND voor de doelservice.

  • Als een database-principal berichten naar een service wil verzenden, moet die principal machtigingen hebben SEND voor de service. Voor services die worden gehost in een ander exemplaar, bepaalt service broker-dialoogvensterbeveiliging de database-principal in het externe exemplaar. Zie De beveiliging van het dialoogvenster Service Broker voor meer informatie. Service Broker overweegt geen lidmaatschap van Windows-rollen bij het controleren van SEND machtigingen.

  • De gebruiker die is opgegeven als de gebruiker voor een opgeslagen activeringsprocedure, moet gemachtigd zijn om de procedure uit te voeren. De opgegeven gebruiker heeft vaak de machtigingen die nodig zijn om de instructies in de procedure uit te voeren. Als de opgeslagen procedure zelf echter wordt gedefinieerd met een EXECUTE AS component, worden de instructies in de opgeslagen procedure uitgevoerd met de beveiligingscontext die is gedefinieerd door de opgeslagen procedure. SQL Server stelt eerst de beveiligingscontext in op de gebruiker die voor de wachtrij is opgegeven. SQL Server voert vervolgens de opgeslagen procedure uit en de opgeslagen procedure wijzigt de beveiligingscontext in de gebruiker die voor de procedure is opgegeven.

  • Wanneer Service Broker-transportbeveiliging gebruikmaakt van SSPI, moet CONNECT het serviceaccount voor de externe database zijn gemachtigd masteren moet het ook overeenkomen met een aanmelding. Daarom moet het account dat het externe SQL Server-exemplaar wordt uitgevoerd, zijn gemachtigd om u aan te melden bij SQL Server met behulp van Windows-verificatie. Er zijn geen vereisten voor het aanmelden om andere machtigingen te hebben of om objecten in een database te bezitten.