Changes for page sql-tde
Last modified by Nikhil Singh on 2026/07/03 08:32
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. rudim1 +XWiki.nikhils - Content
-
... ... @@ -1,11 +1,295 @@ 1 -= Fancy=1 += TDE(backup from smss to azure) = 2 2 3 3 4 -s dfswedfsdf4 +1 Create master key in master database (set master key) 5 5 6 - {{mentionreference="XWiki.nikhils" style="FULL_NAME"anchor="XWiki-nikhils-rfwngb"/}}6 +2 Create TDE certificate (encrypted by MK) 7 7 8 +3 Backup the Certificate and private key, By encryption with a password ( did not do it in this case due to storage blog problems) 8 8 10 +4 Choose DB to create the DEK ,Create database encryption key (DEK) with algorithm ( AES= 256) and encryption by certificate 11 + 12 +5 Set encryption on for the database 13 + 14 +-- 6 Create a new credential with the SAS token 15 +CREATE CREDENTIAL [https://zagpebslab.blob.core.windows.net/sql-backups] 16 +WITH IDENTITY = 'SHARED ACCESS SIGNATURE', 17 +SECRET = 'sp=racwdli&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=kBFwlj5S5eqBEE32LM1EFebBY0W94uEFiwOXo3R0yt4%3D'; 18 +Go-- 19 + 20 +--7 Perform the database backup with the provided parameters 21 +EXECUTE dba.dbo.DatabaseBackup 22 + @Databases = 'dba', -- Replace with your database name 23 + @URL = '[[https:~~/~~/zagpebslab.blob.core.windows.net/sql-backups'>>https://zagpebslab.blob.core.windows.net/sql-backups']], -- Azure Blob Storage URL 24 + @BackupType = 'Full', -- Full backup 25 + @CopyOnly = 'Y', -- Copy-only backup to avoid breaking backup chain 26 + @Compress = 'Y', -- Compress the backup 27 + @Verify = 'N'; -- No verification of backup 28 +GO-- 29 + 30 + 31 +The backup was unable to be done from smss to azure ( the MI does not support encrypted DBs to be backed up from smss to azure) 32 + 33 +We have unencrypted a database and backed it up from ssms to azure blob successfully 34 + 35 + 36 +Conclusion: Can be done with and unencrypted DB but not with an Encrypted one> 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 +1 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourStrongPasswordHere!'; 65 +GO 66 + 67 +CREATE CERTIFICATE TDE_Certificate 68 +WITH SUBJECT = 'TDE Certificate'; 69 +GO 70 + 71 +2 USE master; 72 +GO 73 + 74 +SELECT 75 + cert.name AS Certificate_Name, 76 + cert.subject AS Certificate_Subject, 77 + cert.issuer_name AS Issuer_Name, 78 + cert.pvt_key_encryption_type AS Private_Key_Encryption_Type 79 +FROM 80 + sys.certificates cert 81 +WHERE 82 + cert.name LIKE 'TDE%'; 83 + 84 + 85 +3 BACKUP CERTIFICATE TDE_Certificate 86 +TO FILE = https://zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D\TDE_Certificate.cer' 87 +WITH PRIVATE KEY ( 88 + FILE = https://zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D\TDE_PrivateKey.pvk', 89 + ENCRYPTION BY PASSWORD = 'AnotherStrongPasswordHere!' 90 +); 91 +GO 92 + 93 + 94 +USE Normal; 95 +GO 96 + 97 +-- 6. Create a Database Encryption Key (DEK) and encrypt it with the TDE certificate 98 +CREATE DATABASE ENCRYPTION KEY 99 +WITH ALGORITHM = AES_256 100 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 101 +GO-- 102 + 103 +USE [dba] 104 +GO 105 + 106 +CREATE DATABASE ENCRYPTION KEY 107 +WITH ALGORITHM = AES_256 108 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 109 +GO 110 + 111 + 112 +USE [dba1] 113 +GO 114 + 115 +CREATE DATABASE ENCRYPTION KEY 116 +WITH ALGORITHM = AES_256 117 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 118 +GO 119 + 120 + 121 +USE [dba2] 122 +GO 123 + 124 +CREATE DATABASE ENCRYPTION KEY 125 +WITH ALGORITHM = AES_256 126 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 127 +GO 128 + 129 + 130 +USE [dba3] 131 +GO 132 + 133 +CREATE DATABASE ENCRYPTION KEY 134 +WITH ALGORITHM = AES_256 135 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 136 +GO 137 + 138 +USE [xwiki] 139 +GO 140 + 141 +CREATE DATABASE ENCRYPTION KEY 142 +WITH ALGORITHM = AES_256 143 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 144 +GO 145 + 146 + 147 +-- 7. Enable Transparent Data Encryption (TDE) on the database 148 +ALTER DATABASE dba 149 +SET ENCRYPTION ON; 150 +GO-- 151 + 152 + 153 +select name, database_id, state_desc 154 +from sys.databases 155 + 156 + 157 +SELECT 158 + database_id, 159 + key_algorithm, 160 + key_length, 161 + encryption_state_desc 162 + encryptor_type 163 + 164 +FROM 165 + sys.dm_database_encryption_keys; 166 + 167 + 168 + Select * from sys.dm_database_encryption_keys 169 + 170 + 171 + BACKUP DATABASE [dba2] 172 +TO URL = '[[https:~~/~~/zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D'>>https://zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D']] 173 +With copy_only 174 +GO 175 + 176 + 177 +BACKUP DATABASE [dba2] 178 +TO URL = '[[https:~~/~~/zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D'>>https://zagpebslab.blob.core.windows.net/sql-backups?sp=racwl&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=eQKxB%2F0bg5cX71PmhUTlGHLCnIwSbe5CLOWVVkaDR1g%3D']], 179 + 180 + COPY_ONLY, -- Ensures the backup does not affect the regular backup chain 181 + COMPRESSION, -- Optional: Compresses the backup to save storage space 182 + STATS = 10 -- Optional: Provides backup progress status 183 +GO-- 184 + 185 + 186 + 187 +-- Step 1: Drop the existing credential (if needed) 188 +DROP CREDENTIAL [https://zagpebslab.blob.core.windows.net/sql-backups]; 189 +GO-- 190 + 191 +-- Step 2: Create a new credential with the SAS token 192 +CREATE CREDENTIAL [https://zagpebslab.blob.core.windows.net/sql-backups] 193 +WITH IDENTITY = 'SHARED ACCESS SIGNATURE', 194 +SECRET = 'sp=racwdli&st=2025-02-25T13:28:42Z&se=2026-02-25T21:28:42Z&spr=https&sv=2022-11-02&sr=c&sig=kBFwlj5S5eqBEE32LM1EFebBY0W94uEFiwOXo3R0yt4%3D'; 195 +GO-- 196 + 197 +-- Step 3: Perform the database backup with the provided parameters 198 +EXECUTE dba.dbo.DatabaseBackup 199 + @Databases = 'dba', -- Replace with your database name 200 + @URL = '[[https:~~/~~/zagpebslab.blob.core.windows.net/sql-backups'>>https://zagpebslab.blob.core.windows.net/sql-backups']], -- Azure Blob Storage URL 201 + @BackupType = 'Full', -- Full backup 202 + @CopyOnly = 'Y', -- Copy-only backup to avoid breaking backup chain 203 + @Compress = 'Y', -- Compress the backup 204 + @Verify = 'N'; -- No verification of backup 205 +GO-- 206 + 207 + 208 + 209 + 210 + 211 +select name, database_id, state_desc 212 +from sys.databases 213 + 214 + 215 +SELECT 216 + database_id, 217 + key_algorithm, 218 + key_length, 219 + encryption_state_desc 220 + encryptor_type 221 + 222 +FROM 223 + select * from sys.dm_database_encryption_keys; 224 + 225 + 226 + select name, is_encrypted from sys.databases 227 + 228 + 229 + SELECT 230 + cert.name AS Certificate_Name, 231 + cert.subject AS Certificate_Subject, 232 + cert.issuer_name AS Issuer_Name, 233 + cert.pvt_key_encryption_type AS Private_Key_Encryption_Type 234 +FROM 235 + sys.certificates cert 236 +WHERE 237 + cert.name LIKE 'TDE%'; 238 + 239 + ALTER DATABASE dba1 240 +SET ENCRYPTION off; 241 +GO 242 + 243 + 244 +Use dba1; 245 +DROP DATABASE ENCRYPTION KEY; 246 + 247 + 248 +USE [dba1] 249 +GO 250 + 251 +CREATE DATABASE ENCRYPTION KEY 252 +WITH ALGORITHM = AES_256 253 +ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate; 254 +GO 255 + 256 + 257 + 258 +ALTER DATABASE dba1 259 +SET ENCRYPTION ON 260 + 261 + 262 + 263 + 264 + 265 + 266 + 267 + 268 + 269 + 270 + 271 + 272 + 273 + 274 + 275 + 276 + 277 + 278 + 279 + 280 + 281 + 282 + 283 + 284 + 285 + 286 + 287 + 288 + 289 + 290 + 291 + 292 + 9 9 {{code language="sql"}} 10 10 USE master; 11 11 GO ... ... @@ -39,3 +39,7 @@ 39 39 SET ENCRYPTION ON; 40 40 GO 41 41 {{/code}} 326 + 327 + 328 + 329 +