meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sql_server:tde:refresh_restore_bdd_encryptee [10/12/2023 19:35] mdlsql_server:tde:refresh_restore_bdd_encryptee [10/12/2023 19:49] (Version actuelle) mdl
Ligne 2: Ligne 2:
  
  
-=== Prérequis / prerequisites ===+=== Prérequis ===
  
 Si on fait un restore sur le même environnent que le backup, cette étape n'est pas nécessaire Si on fait un restore sur le même environnent que le backup, cette étape n'est pas nécessaire
-Importer les certificats d'origine (PROD en général) .cert et . key sur le serveur de destination  +Importer les certificats d'origine (PROD en général) .cert et . key sur le serveur de destination . 
 +\\
 === 1. Importer le certificat dans l'instance de destination === === 1. Importer le certificat dans l'instance de destination ===
 <code TSQL> <code TSQL>
Ligne 15: Ligne 15:
 </code>  </code>
  
-vérification du  contenu du backup:+  * vérification du  contenu du backup: 
  <code TSQL>  <code TSQL>
  RESTORE FILELISTONLY FROM DISK = 'C:\AdventureWorks.BAK'  RESTORE FILELISTONLY FROM DISK = 'C:\AdventureWorks.BAK'
  GO  GO
 </code> </code>
- +\\   
 === 2. Restore === === 2. Restore ===
-localisation des datafile de la DB de destination +  * localisation des datafile de la DB de destination 
-  <code TSQL> +<code TSQL> 
- SELECT +SELECT 
- db.name AS DBName, + db.name AS DBName, 
- type_desc AS FileType, + type_desc AS FileType, 
- Physical_Name AS Location + Physical_Name AS Location 
- FROM + FROM sys.master_files mf 
- sys.master_files mf + INNER JOIN  sys.databases db ON db.database_id = mf.database_id
- INNER JOIN  +
- sys.databases db ON db.database_id = mf.database_id+
 </code> </code>
  
-RESTORATION, SQL SERVER sait que le backup est crypté, il va utiliser le certificat précédemment importé +  * RESTORATION, SQL SERVER sait que le backup est crypté, il va utiliser le certificat précédemment importé 
-  <code TSQL>+<code TSQL>
  USE master;  USE master;
  GO  GO
Ligne 42: Ligne 42:
  WITH ROLLBACK IMMEDIATE;  WITH ROLLBACK IMMEDIATE;
  GO  GO
 +</code>
  
 +<code TSQL>
 RESTORE DATABASE [DBWQ1Z81] FROM  DISK = N'F:\Local\BackupSQL\INWQ1Z81\Backup\DBWP1Z81_full_CHG000299572_WO0000002342881.Bak' WITH  FILE = 1,   RESTORE DATABASE [DBWQ1Z81] FROM  DISK = N'F:\Local\BackupSQL\INWQ1Z81\Backup\DBWP1Z81_full_CHG000299572_WO0000002342881.Bak' WITH  FILE = 1,  
  MOVE N'DBWP1Z81' TO N'E:\Local\SQLServer\Data\INWQ1Z81\DBWQ1Z81.mdf',    MOVE N'DBWP1Z81' TO N'E:\Local\SQLServer\Data\INWQ1Z81\DBWQ1Z81.mdf',  
Ligne 56: Ligne 58:
 </code> </code>
  
-renommage des noms logiques des datafile de la DB+  * renommage des noms logiques des datafile de la DB
 <code TSQL> <code TSQL>
  ALTER DATABASE [DBWQ1Z81] MODIFY FILE (NAME=N'DBWP1Z81', NEWNAME=N'DBWQ1Z81')  ALTER DATABASE [DBWQ1Z81] MODIFY FILE (NAME=N'DBWP1Z81', NEWNAME=N'DBWQ1Z81')
Ligne 67: Ligne 69:
  ALTER DATABASE [DBWQ1Z81] MODIFY FILE (NAME=N'DBWP1Z81_log', NEWNAME=N'DBWQ1Z81_log')  ALTER DATABASE [DBWQ1Z81] MODIFY FILE (NAME=N'DBWP1Z81_log', NEWNAME=N'DBWQ1Z81_log')
 </code> </code>
-On repasse la BDD en multi user donc ouverte au service+  * On repasse la BDD en multi user donc ouverte au service
 <code TSQL> <code TSQL>
  ALTER DATABASE [DBWQ1Z81]  ALTER DATABASE [DBWQ1Z81]
Ligne 76: Ligne 78:
 ==== 3. Correction du certificat en relation avec son environnement ==== ==== 3. Correction du certificat en relation avec son environnement ====
    
- 
 La base étant restorée, elle n'est plus encryptée avec le certificat de l'instance de destination, il faut donc le changer La base étant restorée, elle n'est plus encryptée avec le certificat de l'instance de destination, il faut donc le changer
  
--- Trouver le nom du certificat +  * Trouver le nom du certificat 
--- Find the correct certificate+ <code TSQL>
 select * from sys.certificates select * from sys.certificates
 +</code>
  
--- Assignation du bon certificat + 
--- Assign the correct certificate+  * Assignation du bon certificat 
 +<code TSQL>
  use [xxx]  use [xxx]
  GO  GO
Ligne 95: Ligne 98:
  ALTER DATABASE DBWQ1Z81 SET ENCRYPTION ON  ALTER DATABASE DBWQ1Z81 SET ENCRYPTION ON
  GO  GO
 +</code>
 L'encryption va donc être relancée L'encryption va donc être relancée
-Encryption will be therefore relaunched 
  
--- Vérification du statut d'encryption 
--- Check of the status of the encryption 
  
 +  * Vérification du statut d'encryption
 +<code TSQL>
 -- 0 = No database encryption key present, no encryption  -- 0 = No database encryption key present, no encryption 
 -- 1 = Unencrypted  -- 1 = Unencrypted 
Ligne 122: Ligne 124:
  WHEN 5 THEN 'Decryption in progress'  WHEN 5 THEN 'Decryption in progress'
  WHEN 6 THEN 'Protection change in progress (The certificate or asymmetric key that is encrypting the database encryption key is being changed.)'  WHEN 6 THEN 'Protection change in progress (The certificate or asymmetric key that is encrypting the database encryption key is being changed.)'
- 
  END AS DescriptionState ,  END AS DescriptionState ,
 dek.key_algorithm AS Algorithm , dek.key_algorithm AS Algorithm ,
Ligne 132: Ligne 133:
 INNER JOIN sys.certificates c ON dek.encryptor_thumbprint = c.thumbprint INNER JOIN sys.certificates c ON dek.encryptor_thumbprint = c.thumbprint
 GO  GO 
 +</code>