otrdiena, 2012. gada 7. februāris

Servisa Master Key (SMK)

Servisa Master Key (Service Master Key, jeb SMK) ir servera līmeņa atslēga, kas tiek automātiski izveidota pirmajā reizē, kad ir nepieciešama šifrēšana. SMK ir SQL Server augstākā līmeņa atslēga, kas tiek izmantota, piemēram, lai šifrētu SQL lietotāju paroles, linkoto serveru paroles un Datu bāzes Master Key (DMK).

Kas ir SMK
SMK ir SQL Server paša augstākā līmeņa atslēga, kas tiek izmantota lai sargātu servera līmeņa noslēpumus. SMK tiek ģenerēta automātiski, tiklīdz pirmo reizi pēc tās rodas nepieciešamība (piemēram, ja veido Datu bāzes Master Key (DMK). DMK tiek izmantota lai glabātu datu bāzes līmeņa noslēpumus).

SMK tiek aizsargāta divos veidos- SQL Servisa lietotāja autorizācijas datus (lietotāja vārds un parole) komplektā ar Windows Data Protection API, kā arī datora, uz kā SQL Server strādā, konta atslēgu. Tas nozīmē, ka gadījumā, ja nomainīsies lietotāja kontu zem kura strādā SQL Server, tad SMK joprojām būs lietojama- atslēga tiks atšifrēta izmantojot mašīnas kontu un pa jaunu šifrēta izmantojot jauno servisa kontu.

SMK var pārģenerēt un/vai izveidot rezerves kopiju un/vai atjaunot no rezerves kopijas tikai tad, ja lietotājam ir CONTROL SERVER tiesības. Savukārt datu šifrēšanai SMK tiek izmantota automātiski. Piemēram, lai izveidotu DMK jums pietiek ar CONTROL DATABASE tiesībām. Izveidojot DMK, tā automātiski tiks šifrēta/atšifrēta izmantojot SMK.

SMK un TSQL
Kā iepriekš minēts, SMK tiek ģenerēta automātiski. Tādēļ specifiskas izveides komandas SMK nav.
Lai izveidotu rezerves kopiju (jābūt CONTROL SERVER tiesībām):
BACKUP SERVICE MASTER KEY
TO FILE = N'C:\Sertifikati\MyServiceMasterKey.key'
ENCRYPTION BY PASSWORD = N'mypassword11?';
Lai atjaunotu no rezerves kopijas:
RESTORE SERVICE MASTER KEY
FROM FILE = N'C:\Sertifikati\MyServiceMasterKey.key'
DECRYPTION BY PASSWORD = 'mypassword11?'
Lai pārģenerētu SMK (pārģenerēšanas laikā, visi dati, kas šifrēti ar iepriekšējo SMK, tiks atšifrēti un nošifrēti ar jauno SMK. Pēc pārģenerācijas der uztaisīt rezerves kopiju):
ALTER SERVICE MASTER KEY REGENERATE;
Citas alter komandas var apskatīt msdn. Lai nebojātu omu, iepriekšējās komandās neaprakstu FORCE atslēgvārdu.

Informācijas par SMK apskatīšana
Apskatīties un pārliecināties, ka SQL Server ir uzģenerēta un tiek glabāta SMK var izmantojot sys.key_encryptions master datu bāzē (vairāk info šeit):
SELECT * FROM sys.key_encryptions WHERE key_id = 102

Nav komentāru:

Ierakstīt komentāru