Identitets- och åtkomstkontroll (Service Broker)

gäller för:SQL ServerAzure SQL Managed Instance

De flesta Service Broker-program som omfattar mer än en instans körs i säkerhetskontexten för ett databashuvudnamn som skapats specifikt för programmet. Dessa databashuvudnamn bör ha de minsta behörigheter som krävs för att utföra de uppgifter som programmet utför.

Följande överväganden gäller för databashuvudkonton som skapats för Service Broker-program:

  • Fjärrauktorisering för Service Broker gäller när ett fjärranslutet Service Broker-program ansluter till SQL Server och levererar ett meddelande till instansen. Databasens huvudnamn som anges för fjärrauktorisering måste ha CONNECT behörighet i databasen som är värd för den initierande tjänsten och måste ha SEND behörighet för själva initierande tjänsten. Användaren måste äga certifikatet som används för autentisering. Det finns inga krav för användaren att äga andra objekt, att ha andra behörigheter eller att kunna logga in med någon annan mekanism.

  • För att ett databashuvudnamn ska kunna starta en konversation måste det huvudkontot ha RECEIVE behörighet för kön för den initierande tjänsten.

  • Databasens huvudnamn som äger den initierande tjänsten måste ha SEND behörighet för måltjänsten.

  • För att ett databashuvudnamn ska kunna skicka meddelanden till en tjänst måste det huvudkontot ha SEND behörighet för tjänsten. För tjänster som finns i en annan instans avgör Service Broker dialogsäkerhet databasens huvudnamn i fjärrinstansen. Mer information finns i Dialogsäkerhet för Service Broker. Service Broker överväger inte medlemskap i Windows-roller vid kontroll av SEND behörigheter.

  • Användaren som anges som användare för en aktiverings lagrad procedur måste ha behörighet att utföra proceduren. Den angivna användaren har ofta de behörigheter som krävs för att köra instruktionerna i proceduren. Men om själva den lagrade proceduren definieras med en EXECUTE AS -sats körs instruktionerna i den lagrade proceduren med den säkerhetskontext som definieras av den lagrade proceduren. SQL Server anger först säkerhetskontexten till den användare som angetts för kön. SQL Server kör sedan den lagrade proceduren och den lagrade proceduren ändrar säkerhetskontexten till den användare som angetts för proceduren.

  • När Service Broker Transport Security använder SSPI måste tjänstkontot för fjärrdatabasen ha CONNECT behörighet i masteroch måste även motsvara en inloggning. Därför måste kontot som den fjärranslutna SQL Server-instansen körs som ha behörighet att logga in på SQL Server med Windows-autentisering. Det finns inga krav på att inloggningen ska ha andra behörigheter eller att äga objekt i någon databas.