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 desyslogins
tabel van de primaire server opgeven. Dit bestand moet actueel zijn omdat een verouderd bestand ertoe kan leiden datsp_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:
De naam van de aanmelding uit het
.bcp
bestand van desyslogins
tabel moet overeenkomen met de naam in desyslogins
tabel van de primaire server.De SID-waarde moet overeenkomen tussen het aanmeldingsbestand
.bcp
en desysusers
tabel in de secundaire database.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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor