Beveiliging configureren voor SQL Server logboekverzending

In dit artikel wordt beschreven hoe u beveiliging configureert voor SQL Server logboekverzending en bevat informatie over het probleem dat kan optreden wanneer u beveiliging configureert voor SQL Server logboekverzending.

Originele productversie: SQL Server
Origineel KB-nummer: 321247

Samenvatting

Dit artikel bevat informatie over het configureren van beveiliging voor logboekverzending. Er zijn verschillende problemen waarmee u rekening moet houden bij het configureren van beveiliging voor SQL Server logboekverzending, variërend van het opstartaccount voor SQL Server tot het delen van machtigingen voor de netwerkshare waar de back-ups van het transactielogboek zich bevinden. Deze problemen worden beschreven in dit artikel.

Domeinaccount

Als u SQL Server in een domein hebt geplaatst, raadt Microsoft u aan een domeinaccount te gebruiken om SQL Server-services te starten. U moet een domeinaccount gebruiken als u SQL Server gaat configureren om te worden uitgevoerd als een virtuele server onder Windows Clustering. Een domeinaccount biedt het voordeel van minimaal onderhoud in het geval van wachtwoordwijzigingen. Het is echter mogelijk dat u SQL niet kunt starten onder een domeinaccount als SQL Server zich bevindt op een server die zich in een werkgroep bevindt.

Lokaal netwerkaccount

U kunt SQL Server gebruiken om te beginnen met een lokaal gemaakt netwerkaccount. In de situatie waarin er netwerktoegang is vereist door een SQL Server-proces, wat het geval is als u SQL Server hebt geconfigureerd voor het gebruik van logboekverzending, kunt u netwerkpassthrough-beveiliging gebruiken. Met passthrough-beveiliging moeten alle machines die door SQL Server worden geopend, hetzelfde netwerkaccount hebben met hetzelfde wachtwoord en de juiste machtigingen, lokaal geconfigureerd. Wanneer het SQL Server-proces resources van de tweede computer aanvraagt, wordt de traditionele netwerkbeveiliging bovendien overgeslagen als hetzelfde account (waaronder de aanvragende SQL Server-service wordt gestart) bestaat met hetzelfde wachtwoord. Zolang het account op de tweede computer is geconfigureerd met voldoende machtigingen om de taak uit te voeren die is aangevraagd door SQL Server aan te roepen, is de taak geslaagd.

Lokaal systeemaccount

U kunt SQL Server ook configureren om te starten onder het account Lokaal systeem. Het wijzigen van het wachtwoord voor het LocalSystem-account kan leiden tot het mislukken van bepaalde services die essentieel zijn voor de systeemstabiliteit. Dit account is lokaal op de computer waarop het zich bevindt, wat betekent dat de beveiligingscontext die SQL Server services gebruikt lokaal is. Zoals vermeld in de sectie Lokaal netwerkaccount, kunt u geen netwerkpassthrough-beveiliging gebruiken wanneer u SQL Server onder het LocalSystem-account start, omdat de wachtwoorden voor het LocalSystem-account op verschillende computers verschillend zijn. Het starten van SQL Server onder dit account wanneer toegang tot netwerkresources is vereist, leidt waarschijnlijk tot de mislukte voltooiing van taken.

Zie Windows-serviceaccounts instellen voor informatie over de minimaal vereiste rechten voor een netwerkaccount om SQL Server- en SQL Server Agent-services te starten en uit te voeren.

Informatie over het SQL Server-beveiligingsmodel

Om de gevolgen voor de beveiliging volledig te begrijpen, is het belangrijk om het beveiligingsmodel te begrijpen dat Microsoft in SQL Server 2000 heeft geïmplementeerd. Wanneer u een aanmelding maakt, wordt deze toegevoegd aan de syslogins tabel in de MASTER-database. Voor elke database waartoe deze nieuw toegevoegde aanmelding toegang krijgt, wordt deze toegevoegd aan de sysusers tabel in die database. De toewijzing tussen syslogins tabel en sysusers tabel bevindt zich in het veld SID.

Als een gebruikersdatabase wordt verplaatst naar een andere server, worden de SID-waarden overgedragen van de vorige server. De beveiliging van de database wordt verbroken wanneer aanmeldingen op de tweede server niet met dezelfde SID-waarden worden gemaakt of als de beveiliging onjuist is geconfigureerd vanwege niet-overeenkomende SID-waarden.

Zie Machtigingsproblemen oplossen wanneer u een database verplaatst tussen servers waarop SQL Server wordt uitgevoerd voor meer informatie.

Beveiligingsvereisten

  • Back-upshare

    Configureer de netwerkshare die is geconfigureerd voor het opslaan van de back-ups van het transactielogboek om lees-/wijzigingsmachtigingen te hebben voor het account waaronder SQL Server services (op de secundaire server die is geconfigureerd voor logboekverzending) worden gestart.

    De netwerkshare die is geconfigureerd voor het opslaan van de back-ups van het transactielogboek, moet worden geconfigureerd om lees-/wijzigingsmachtigingen te hebben voor het account waaronder SQL Server-services, op de secundaire server die is geconfigureerd voor logboekverzending, worden gestart. Deze share wordt geopend door de kopieertaak op de secundaire server om de back-ups van het transactielogboek te kopiëren naar de lokale map op de respectieve secundaire server. De taak Laden laadt deze back-ups vervolgens uit de lokale map.

  • Logboekverzending voor meerdere domeinen

    Als computers met SQL Server in een omgeving met meerdere domeinen worden geplaatst, raadt Microsoft u aan om vertrouwensrelaties in twee richtingen in te stellen tussen alle domeinen die betrokken zijn bij het verzenden van logboeken. Als u echter geen vertrouwensrelaties tussen domeinen kunt instellen, kunt u netwerkpassthrough-beveiliging gebruiken voor logboekverzending. Raadpleeg de sectie van dit artikel met de optie voor het opstarten van het LocalSystem-netwerkaccount voor SQL Server-gerelateerde services.

  • Verificatiemodus selecteren om verbinding te maken met de bewakingsserver

    U kunt Windows-verificatie of SQL-verificatie (door primaire en secundaire servers) selecteren om verbinding te maken met de bewakingsserver en om de monitortabellen bij te werken. U kunt dit selecteren tijdens het instellen van logboekverzending of nadat u logboekverzending hebt ingesteld en dit functioneel is. Standaard maakt SQL Server gebruik van Windows-verificatie. Als u echter SQL-verificatie selecteert, wordt er een nieuwe SQL-aanmelding log_shipping_monitor_probe gemaakt op de primaire, secundaire en controlerende servers als deze niet bestaat. Als u HIERVOOR SQL-verificatie selecteert, configureert u SQL Server voor het gebruik van de optie SQL- en Windows-verificatie.

Beveiligingsconfiguratie op secundaire server voor stand-bydatabases

Als u de secundaire database in de stand-bymodus configureert, hebt u toegang tot deze database in de status Alleen-lezen. Door de secundaire database in deze modus te herstellen, kan dit een manier bieden om offlinerapporten uit te voeren, waardoor een deel van het werk van het productiesysteem wordt offloaden. Als de stand-bydatabase echter alleen-lezenfunctionaliteit ondersteunt, moet u mogelijk dezelfde beveiligingsinstellingen toepassen op de secundaire server. Omdat de database zich in de stand-bystatus bevindt, kunt u zelfs geen wijzigingen aanbrengen met het oog op het configureren van de beveiliging. In dit geval moet u alle SQL Server aanmeldingen met dezelfde SID-waarden maken op de secundaire server. Windows-aanmeldingen behouden automatisch dezelfde SID's omdat de Windows-GUID wereldwijd uniek is, zelfs wanneer u meerdere domeinen gebruikt.

Zie Toegang verlenen tot SQL-aanmeldingen in een stand-bydatabase wanneer de gast is uitgeschakeld in SQL Server voor meer informatie over het maken van SQL-aanmeldingen met dezelfde SID op verschillende servers.

Beveiligingsconfiguratie bij het uitvoeren van rolwijziging

De rolwijzigingsprocedure voor logboekverzending omvat het promoten van een secundaire server om het over te nemen als de primaire server. U kunt dit doen met of zonder dat de primaire server online is. Als onderdeel van de rolwijziging worden er maximaal vier opgeslagen procedures uitgevoerd. Een van deze opgeslagen procedures, sp_resolve_logins , helpt bij het corrigeren van de SID-waarden voor aanmeldingen die zich in de stand-bydatabase bevinden net voordat deze beschikbaar wordt gemaakt voor gebruik als de primaire database.

Als onderdeel van deze opgeslagen procedure wordt een .bcp bestand van de syslogins tabel van de voormalige primaire server in een tijdelijke tabel geladen. Elke aanmelding die aanwezig is in deze tijdelijke tabel wordt vervolgens vergeleken met de syslogins tabel in de MASTER-database van de secundaire server en de sysusers tabel van de secundaire database. Voor elke aanmelding in de tijdelijke tabel met een aanmelding met dezelfde naam in de syslogins tabel en dezelfde SID als die in de sysusers tabel van de secundaire database, wordt de SID gecorrigeerd (in de secundaire database) door gebruik te maken sp_change_users_login van de sid die zich in de syslogins tabel bevindt.

Voor beveiligingsconfiguratie met behulp van deze opgeslagen procedure is het volgende vereist:

  • SQL-aanmeldingen moeten al zijn gemaakt op de secundaire server. Gebruik hiervoor de DTS-taak Aanmeldingen overdragen die wordt uitgelegd in SQL Server Boeken Online-onderwerp: Wijziging van rol voor logboekverzending instellen en uitvoeren.

  • U moet een .bcp bestand van de syslogins tabel van de primaire server opgeven. Dit bestand moet actueel zijn omdat een verouderd bestand ertoe kan leiden dat sp_resolve_logins de aanmeldingen niet worden opgelost.

U moet aan de volgende drie voorwaarden voldoen voordat sp_resolve_logins u de aanmeldingen in de secundaire database daadwerkelijk kunt herstellen:

  1. De naam van de aanmelding uit het .bcp bestand van de syslogins tabel moet overeenkomen met de naam in de syslogins tabel van de primaire server.

  2. De SID-waarde moet overeenkomen tussen het aanmeldingsbestand .bcp en de sysusers tabel in de secundaire database.

  3. De SID-waarde van de secundaire database moet afwijken van de SID-waarde in de syslogins tabel in de MASTER-database op de secundaire server.

Als u SQL Server aanmeldingen maakt zoals beschreven in Q303722, hoeft deze opgeslagen procedure niet te worden uitgevoerd omdat alle aanmeldingen al dezelfde SID-waarde hebben in de tabel (in de syslogins MASTER-database op de secundaire server) en de sysusers tabel (in de secundaire database).

Veelgestelde vragen

  • Vraag: Worden beveiligingsgerelateerde wijzigingen automatisch doorgegeven aan een secundaire server?

    Antwoord: Ja. Omdat alle wijzigingen in de systeemtabellen logboekbewerkingen zijn, worden deze automatisch doorgegeven aan de secundaire server (of servers).

  • Vraag: Kunt u twee aanmeldingen hebben op de secundaire server met dezelfde SID? Ik heb dit nodig omdat ik dezelfde SQL Server computer gebruik om meerdere stand-bydatabases van meerdere servers te onderhouden.

    Antwoord: Nee. SQL Server beveiligingsmodel staat niet toe dat er twee aanmeldingen met dezelfde SID zijn. Als er een conflict op de SID is tijdens het gebruik van logboekverzending met meerdere servers, kunt u dit alleen corrigeren door de conflicterende aanmelding op de primaire server te verwijderen en deze vervolgens te maken met een SID die niet op de secundaire server bestaat.