Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
In dit onderwerp worden de stappen beschreven voor het configureren van serverexemplaren voor het gebruik van certificaten voor het verifiëren van uitgaande verbindingen voor databasespiegeling. De configuratie van de uitgaande verbinding moet worden uitgevoerd voordat u binnenkomende verbindingen kunt instellen.
Notitie
Alle spiegelingsverbindingen in een serverexemplaar gebruiken één eindpunt voor databasespiegeling en u moet de verificatiemethode van de serverexemplaar opgeven wanneer u het eindpunt maakt.
Het proces voor het configureren van uitgaande verbindingen omvat de volgende algemene stappen:
Maak in de master database een hoofdsleutel aan voor de database.
Maak in de masterdatabase een versleuteld certificaat aan op de serverinstance.
Maak een eindpunt voor het serverexemplaar met behulp van zijn certificaat.
Maak een back-up van het certificaat naar een bestand en kopieer het veilig naar het andere systeem of de andere systemen.
U moet deze stappen uitvoeren voor elke partner en de getuige, indien aanwezig.
In de volgende procedure worden deze stappen gedetailleerd beschreven. Voor elke stap bevat de procedure een voorbeeld voor het configureren van een serverexemplaar op een systeem genaamd HOST_A. In de bijbehorende sectie Voorbeeld ziet u dezelfde stappen voor een ander serverexemplaar op een systeem genaamd HOST_B.
Procedure
Serverexemplaren configureren voor uitgaande mirroringverbindingen (op HOST_A)
Maak in de hoofddatabase database de hoofdsleutel van de database als deze niet bestaat. Als u de bestaande sleutels voor een database wilt weergeven, gebruikt u de sys.symmetric_keys catalogusweergave.
Gebruik de volgende Transact-SQL opdracht om de hoofdsleutel van de database te maken. Vervang
<password>
door een geldig wachtwoord.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; GO
Gebruik een uniek, sterk wachtwoord en noteer het op een veilige plaats.
Zie CREATE MASTER KEY (Transact-SQL) en Create a Database Master Keyvoor meer informatie.
Maak een versleuteld certificaat op de serverinstantie in de hoofddatabase database om te gebruiken voor uitgaande verbindingen bij databasespiegeling.
Als u bijvoorbeeld een certificaat wilt maken voor het HOST_A systeem.
Belangrijk
Als u het certificaat meer dan één jaar wilt gebruiken, geeft u de vervaldatum in UTC-tijd op met behulp van de optie EXPIRY_DATE in de instructie CREATE CERTIFICATE. U wordt ook aangeraden SQL Server Management Studio te gebruiken om een op beleid gebaseerde beheerregel te maken om u te waarschuwen wanneer uw certificaten verlopen. Gebruik het dialoogvenster Beleidsbeheer Nieuwe voorwaarde maken om deze regel te maken in het veld @ExpirationDate van het Certificaat facet. Zie Servers beheren met behulp van beheer op basis van beleid en het beveiligen van SQL Server-voor meer informatie.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '11/30/2013'; GO
Zie CREATE CERTIFICATE (Transact-SQL)voor meer informatie.
Als u de certificaten in de hoofddatabase wilt weergeven, kunt u de volgende Transact-SQL instructies gebruiken:
USE master; SELECT * FROM sys.certificates;
Zie sys.certificates (Transact-SQL)voor meer informatie.
Zorg ervoor dat het eindpunt voor databasespiegeling bestaat op elk van de serverexemplaren.
Als er al een eindpunt voor databasespiegeling bestaat voor het serverexemplaar, moet u dat eindpunt hergebruiken voor andere sessies die u op het serverexemplaar tot stand brengt. Gebruik de volgende instructie om te controleren of er een eindpunt voor databasespiegeling bestaat op een serverexemplaar en om de configuratie ervan weer te geven:
SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints;
Als er geen eindpunt bestaat, maakt u een eindpunt dat dit certificaat gebruikt voor uitgaande verbindingen en die de referenties van het certificaat gebruikt voor verificatie op het andere systeem. Dit is een serverbreed eindpunt dat wordt gebruikt door alle spiegelingssessies waarin de serverinstantie deelneemt.
Als u bijvoorbeeld een mirror-eindpunt wilt maken voor het voorbeeldserverexemplaar op HOST_A.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Zie CREATE ENDPOINT (Transact-SQL)voor meer informatie.
Maak een back-up van het certificaat en kopieer het naar het andere systeem of de andere systemen. Dit is nodig om binnenkomende verbindingen op het andere systeem te configureren.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Zie BACKUP CERTIFICATE (Transact-SQL)voor meer informatie.
Kopieer dit certificaat met behulp van een veilige methode die u kiest. Wees uiterst voorzichtig om al uw certificaten veilig te houden.
De voorbeeldcode in de voorgaande stappen configureert uitgaande verbindingen op HOST_A.
Je moet nu dezelfde uitgaande stappen uitvoeren voor HOST_B. Deze stappen worden geïllustreerd in de volgende sectie Voorbeeld.
Voorbeeld
In het volgende voorbeeld ziet u hoe u HOST_B configureert voor uitgaande verbindingen.
USE master;
--Create the database Master Key, if needed.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
GO
-- Make a certificate on HOST_B server instance.
CREATE CERTIFICATE HOST_B_cert
WITH SUBJECT = 'HOST_B certificate for database mirroring',
EXPIRY_DATE = '11/30/2013';
GO
--Create a mirroring endpoint for the server instance on HOST_B.
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=7024
, LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE HOST_B_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = ALL
);
GO
--Backup HOST_B certificate.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
GO
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.
Kopieer het certificaat naar het andere systeem met behulp van een veilige methode die u kiest. Wees uiterst voorzichtig om al uw certificaten veilig te houden.
Belangrijk
Nadat u uitgaande verbindingen hebt ingesteld, moet u binnenkomende verbindingen configureren op elk serverexemplaar voor de andere serverexemplaar of exemplaren. Voor meer informatie, zie Om een eindpunt voor databasespiegeling toe te staan certificaten te gebruiken voor binnenkomende verbindingen (Transact-SQL).
Zie Een gespiegelde database voorbereiden voor spiegeling (SQL Server)voor meer informatie over het maken van een gespiegelde database, waaronder een Transact-SQL voorbeeld.
Zie voorbeeld: Databasespiegeling instellen met certificaten (Transact-SQL)voor een Transact-SQL voorbeeld van het tot stand brengen van een sessie met hoge prestaties.
.NET Framework-beveiliging
Tenzij u kunt garanderen dat uw netwerk veilig is, raden we u aan versleuteling te gebruiken voor databasespiegelingsverbindingen.
Wanneer u een certificaat naar een ander systeem kopieert, gebruikt u een veilige kopieermethode.
Zie ook
Een versleutelingsalgoritmen kiezen
een mirrordatabase voorbereiden voor spiegeling (SQL Server)
ALTER ENDPOINT (Transact-SQL)
voorbeeld: Databasespiegeling instellen met behulp van certificaten (Transact-SQL)
het eindpunt voor databasespiegeling (SQL Server)
Problemen met configuratie van databasespiegeling (SQL Server) oplossen
een versleutelde gespiegelde database instellen