Delen via


Risicobeperking en beperking van beveiligingsproblemen (replicatie)

Van toepassing op:SQL ServerAzure SQL Managed Instance

In dit onderwerp worden technieken beschreven om bedreigingen voor een replicatietopologie te verminderen.

Encryption

Versleuteling is het proces van het converteren van gegevens naar een formulier dat niet kan worden gelezen zonder een speciale sleutel, zodat alleen de beoogde ontvanger de gegevens kan lezen. Replicatie versleutelt geen gegevens die zijn opgeslagen in tabellen of verzonden via netwerkverbindingen. Dit is standaard, omdat versleuteling beschikbaar is op transportniveau met een aantal technologieën, waaronder de volgende industriestandaardtechnologieën: Virtual Private Networks (VPN), Transport Layer Security (TLS), voorheen bekend als Secure Sockets Layer (SSL) en IPSec (IPSEC). U wordt aangeraden een van deze versleutelingsmethoden te gebruiken voor de verbindingen tussen computers in een replicatietopologie. Zie Versleutelde verbindingen met de database-engine inschakelen (SQL Server Configuration Manager) voor meer informatie. Zie Replicatie beveiligen via internet voor informatie over het gebruik van VPN en TLS voor het repliceren van gegevens via internet.

Als u TLS gebruikt om de verbindingen tussen computers in een replicatietopologie te beveiligen, geeft u een waarde van 1 of 2 op voor de parameter -EncryptionLevel van elke replicatieagent (een waarde van 2 wordt aanbevolen). Een waarde van 1 geeft aan dat versleuteling wordt gebruikt, maar de agent controleert niet of het TLS/SSL-servercertificaat is ondertekend door een vertrouwde verlener; een waarde van 2 geeft aan dat het certificaat wordt geverifieerd. Agentparameters kunnen worden opgegeven in agentprofielen en op de opdrachtregel. Voor meer informatie, zie:

Replicatie heeft het volgende gedrag met betrekking tot databasehoofdsleutels, die worden gebruikt om gegevens te versleutelen:

  • Als een hoofdsleutel aanwezig is in een database die betrokken is bij replicatie (een publicatiedatabase, abonnementsdatabase of distributiedatabase), versleutelt en ontsleutelt replicatie agentwachtwoorden in die database met behulp van een symmetrische sleutel van sql Server 2012 (11.x). Als hoofdsleutels worden gebruikt, moet er een hoofdsleutel worden gemaakt in elke database die betrokken is bij replicatie. Zie CREATE MASTER KEY (Transact-SQL) voor meer informatie over het maken van hoofdsleutels.

  • Replicatie repliceert geen hoofdsleutels. Als u de hoofdsleutel bij de abonnee nodig hebt, moet u deze exporteren uit de publicatiedatabase met behulp van BACKUP MASTER KEY en deze vervolgens importeren in de abonnementsdatabase met BEHULP van RESTORE MASTER KEY. Zie BACKUP MASTER KEY (Transact-SQL) en RESTORE MASTER KEY (Transact-SQL)voor meer informatie.

  • Als een hoofdsleutel is gedefinieerd voor een gekoppelde abonnementsdatabase, geeft u het wachtwoord van de hoofdsleutel op met behulp van de @db_master_key_password parameter sp_attachsubscription (Transact-SQL). Hierdoor kan de database worden gekoppeld aan de abonnee.

Zie Versleutelingshiërarchie voor meer informatie over versleuteling en hoofdsleutels.

Met replicatie kunt u versleutelde kolomgegevens publiceren. Als u deze gegevens bij de abonnee wilt ontsleutelen en gebruiken, moet de sleutel die is gebruikt voor het versleutelen van de gegevens bij de Uitgever ook aanwezig zijn op de abonnee. Replicatie biedt geen beveiligd mechanisme voor het transport van versleutelingssleutels. U moet de versleutelingssleutel handmatig opnieuw maken bij de abonnee. Zie Gegevens repliceren in versleutelde kolommen (SQL Server Management Studio) voor meer informatie.

Ondersteuning voor TLS 1.3

SQL Server 2025 (17.x) Preview en latere versies ondersteunt TLS 1.3 voor replicatieverbindingen die zijn geïnitialiseerd door agents die zijn geconfigureerd voor uitvoering op SQL Server 2025. Dit is van toepassing op een replicatietopologie met SQL Server en SQL Managed Instance.

Als u TLS 1.3 gebruikt om de verbindingen tussen exemplaren in een replicatietopologie te beveiligen, geeft u een waarde op van 3 of 4 voor de -EncryptionLevel parameter van elke replicatieagent:

Een waarde van 3 dwingt TLS 1.3-verbindingen met SQL Managed Instances af, maar heeft geen invloed op verbindingen met SQL Server-exemplaren. Een waarde van 4 maakt TLS 1.3 mogelijk voor uitgaande verbindingen die zijn geïnitieerd door SQL-beheerde instanties, of SQL Server 2025 (17.x) Preview en latere versies, naar andere SQL-servers of SQL-beheerde instanties. Voor verbindingen die zijn gericht op een SQL Server (elke ondersteunde versie), moet het juiste certificaat worden geïnstalleerd op de doel-SQL Server-host.