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
Azure SQL Database
Azure SQL Managed Instance
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric
Hiermee wijzigt u het wachtwoord dat wordt gebruikt om de persoonlijke sleutel van een certificaat te versleutelen, verwijdert u de persoonlijke sleutel of importeert u de persoonlijke sleutel als er geen aanwezig is. Hiermee wijzigt u de beschikbaarheid van een certificaat in Service Broker.
Transact-SQL syntaxis-conventies
Syntax
-- Syntax for SQL Server and Azure SQL Database
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
| WITH PRIVATE KEY ( <private_key_spec> )
| WITH ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
<private_key_spec> ::=
{
{ FILE = 'path_to_private_key' | BINARY = private_key_bits }
[ , DECRYPTION BY PASSWORD = 'current_password' ]
[ , ENCRYPTION BY PASSWORD = 'new_password' ]
}
|
{
[ DECRYPTION BY PASSWORD = 'current_password' ]
[ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]
}
-- Syntax for Parallel Data Warehouse
ALTER CERTIFICATE certificate_name
{
REMOVE PRIVATE KEY
| WITH PRIVATE KEY (
FILE = '<path_to_private_key>',
DECRYPTION BY PASSWORD = '<key password>' )
}
Arguments
certificate_name
De unieke naam waarmee het certificaat bekend is in de database.
PERSOONLIJKE SLEUTEL VERWIJDEREN
Hiermee geeft u op dat de persoonlijke sleutel niet meer in de database wordt onderhouden.
MET PERSOONLIJKE SLEUTEL geeft u op dat de persoonlijke sleutel van het certificaat wordt geladen in SQL Server.
BESTAND ='path_to_private_key'
Hiermee geeft u het volledige pad, inclusief bestandsnaam, op de persoonlijke sleutel. Deze parameter kan een lokaal pad of een UNC-pad naar een netwerklocatie zijn. Het bestand wordt geopend in de beveiligingscontext van het SQL Server-serviceaccount. Wanneer u deze optie gebruikt, moet u ervoor zorgen dat het serviceaccount toegang heeft tot het opgegeven bestand.
Als u alleen een bestandsnaam opgeeft, wordt het bestand opgeslagen in de standaardmap met gebruikersgegevens voor het exemplaar. Deze map is mogelijk of niet de map SQL Server DATA. Voor SQL Server Express LocalDB is de standaardmap met gebruikersgegevens voor het exemplaar het pad dat is opgegeven door de %USERPROFILE% omgevingsvariabele voor het account dat het exemplaar heeft gemaakt.
BINAIR ='private_key_bits'
Van toepassing op: SQL Server 2012 (11.x) en hoger.
Privésleutel-bits die zijn opgegeven als binaire constante. Deze bits kunnen in versleutelde vorm worden gebruikt. Indien versleuteld, moet u een ontsleutelingswachtwoord opgeven. SQL Server voert geen wachtwoordbeleidscontroles uit op dit wachtwoord. De privésleutel-bits moeten een PVK-bestandsindeling hebben.
ONTSLEUTELING PER WACHTWOORD ='current_password'
Hiermee geeft u het wachtwoord op dat is vereist voor het ontsleutelen van de persoonlijke sleutel.
VERSLEUTELING OP WACHTWOORD ='new_password'
Hiermee geeft u het wachtwoord op dat wordt gebruikt voor het versleutelen van de persoonlijke sleutel van het certificaat in de database.
new_password moet voldoen aan de windows-wachtwoordbeleidsvereisten van de computer waarop het exemplaar van SQL Server wordt uitgevoerd. Zie Wachtwoordbeleidvoor meer informatie.
ACTIEF VOOR BEGIN_DIALOG = { AAN | UIT }
Het certificaat beschikbaar maken voor de initiator van een Service Broker-dialoogvenster.
Remarks
De persoonlijke sleutel moet overeenkomen met de openbare sleutel die is opgegeven door certificate_name.
U kunt de COMPONENT DECRYPTION BY PASSWORD weglaten als het wachtwoord in het bestand is beveiligd met een null-wachtwoord.
Wanneer u de persoonlijke sleutel importeert van een certificaat dat al bestaat in de database, wordt de persoonlijke sleutel automatisch beveiligd door de hoofdsleutel van de database. Gebruik de component ENCRYPTION BY PASSWORD om de persoonlijke sleutel met een wachtwoord te beveiligen.
Met de optie PERSOONLIJKE SLEUTEL VERWIJDEREN wordt de persoonlijke sleutel van het certificaat uit de database verwijderd. U kunt de persoonlijke sleutel verwijderen wanneer u het certificaat gebruikt om handtekeningen te verifiëren of in Service Broker-scenario's waarvoor geen persoonlijke sleutel is vereist. Verwijder de persoonlijke sleutel van een certificaat dat een symmetrische sleutel beveiligt niet. U moet de persoonlijke sleutel herstellen om eventuele extra modules of tekenreeksen te ondertekenen die moeten worden geverifieerd met het certificaat of om een waarde te ontsleutelen die is versleuteld met het certificaat.
U hoeft geen ontsleutelingswachtwoord op te geven wanneer de persoonlijke sleutel wordt versleuteld met behulp van de hoofdsleutel van de database.
Als u het wachtwoord wilt wijzigen dat wordt gebruikt voor het versleutelen van de persoonlijke sleutel, geeft u niet de BESTANDS- of BINARY-componenten op.
Important
Maak altijd een archiveringskopie van een persoonlijke sleutel voordat u deze uit een database verwijdert. Zie BACKUP CERTIFICATE (Transact-SQL) en CERTPRIVATEKEY (Transact-SQL) voor meer informatie.
De optie WITH PRIVATE KEY is niet beschikbaar in een ingesloten database.
Beperkingen
Certificaatnamen kunnen niet worden gewijzigd na het maken. ALTER CERTIFICATE biedt geen ondersteuning voor het wijzigen van de naam van certificaten. Als u een andere certificaatnaam moet gebruiken, moet u een nieuw certificaat maken en afhankelijkheden migreren.
Tijdelijke oplossing voor TDE-certificaten
Als u een TDE-certificaat (Transparent Data Encryption) wilt vervangen door een andere naam:
Maak een back-up van het huidige certificaat en de persoonlijke sleutel:
BACKUP CERTIFICATE OldTDECert TO FILE = 'C:\Backup\OldTDECert.cer' WITH PRIVATE KEY ( FILE = 'C:\Backup\OldTDECert.pvk', ENCRYPTION BY PASSWORD = '<password>' );Maak het nieuwe certificaat met de juiste naam:
CREATE CERTIFICATE NewTDECert WITH SUBJECT = 'TDE Certificate - Correct Name';Wijzig voor elke met TDE versleutelde database de versleutelingssleutel:
USE EncryptedDB; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE NewTDECert;Nadat alle databases zijn gemigreerd, kunt u het oude certificaat verwijderen:
USE master; GO DROP CERTIFICATE OldTDECert;
Important
Maak altijd een back-up van certificaten en persoonlijke sleutels voordat u TDE-wijzigingen aanbrengt. Sla back-ups op een veilige locatie op, gescheiden van de databaseserver.
Permissions
Vereist ALTER-machtiging voor het certificaat.
Examples
A. De persoonlijke sleutel van een certificaat verwijderen
ALTER CERTIFICATE Shipping04
REMOVE PRIVATE KEY;
GO
B. Het wachtwoord wijzigen dat wordt gebruikt om de persoonlijke sleutel te versleutelen
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',
ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');
GO
C. Een persoonlijke sleutel importeren voor een certificaat dat al aanwezig is in de database
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. De beveiliging van de persoonlijke sleutel wijzigen van een wachtwoord in de hoofdsleutel van de database
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO