Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर डेटाबेस बैकअप एन्क्रिप्शन

डेटाबेस बैकअप फ़ाइलों के रूप में फ़ाइल सिस्टम द्वारा बैकअप की गई डेटा सुरक्षा को प्रबंधित करने के लिए, SQL सर्वर बैकअप एन्क्रिप्शन सुविधा प्रदान करता है। इस लेख में, हम डेटाबेस बैकअप के लिए SQL सर्वर में उपलब्ध एन्क्रिप्शन विकल्पों के बारे में बात करेंगे। हम बैकअप प्रक्रिया के दौरान SQL सर्वर डेटाबेस बैकअप को एन्क्रिप्ट करने के लिए उपयोग विवरण, लाभ और अनुशंसित प्रथाओं पर करीब से नज़र डालेंगे।

डेटाबेस बैकअप एन्क्रिप्शन क्या है?

डेटा को सुरक्षित रखने की आवश्यकता नाटकीय रूप से बढ़ रही है। डेटा के साथ, आपको यह सुनिश्चित करने की आवश्यकता है कि आपकी डेटाबेस बैकअप फ़ाइलें भी सुरक्षित हैं, विशेष रूप से सर्वर फ़ाइल सिस्टम पर। मूल SQL सर्वर बैकअप फ़ाइलों के अंदर डेटा फ़ाइल सिस्टम पर एक सादे पाठ के रूप में संग्रहीत किया जाता है। आप टेक्स्ट एडिटर का उपयोग करके इसे बिना किसी प्रयास के पढ़ सकते हैं।
आपकी तालिकाओं में उपयोग किए गए डेटा प्रकारों के आधार पर, कुछ डेटा अन्य की तुलना में पढ़ने में बहुत आसान होता है। निम्न चित्र नोटपैड टेक्स्ट एडिटर में खोली गई बैकअप फ़ाइल को दर्शाता है:

जैसा कि आप देख सकते हैं, टी-एसक्यूएल कोड दृश्यमान और पढ़ने में आसान है। हालांकि, एक बार जब हम एन्क्रिप्शन के साथ बैकअप बना लेते हैं, तो किसी को भी इसके दायरे में आने का मौका नहीं मिलेगा।

निम्न चित्र एन्क्रिप्शन के साथ उसी AdventureWorks2014.bak को प्रदर्शित करता है।

SQL सर्वर 2014 से शुरू होकर, डेटाबेस इंजन बैकअप फ़ाइल बनाते समय डेटा को एन्क्रिप्ट कर सकता है। बैकअप बनाते समय आप एन्क्रिप्शन एल्गोरिथम और एन्क्रिप्टर, या तो एक प्रमाणपत्र या असममित कुंजी निर्दिष्ट कर सकते हैं। बैकअप एन्क्रिप्शन सुविधा सुरक्षा में सुधार करती है और किसी भी डोमेन में काम करती है जहां स्वयं SQL सर्वर का उपयोग किया जा सकता है।

क्या आवश्यक है?

डेटाबेस बैकअप को एन्क्रिप्ट करने के लिए, आपको एक एन्क्रिप्शन एल्गोरिथम और एक एन्क्रिप्टर निर्दिष्ट करना होगा। दो समर्थित एन्क्रिप्शन विकल्प हैं:

  • एन्क्रिप्शन एल्गोरिथम:AES_128, AES_192, AES_256, और ट्रिपल_DES_3Key
  • एन्क्रिप्टर:एक प्रमाणपत्र या असममित कुंजी

यदि आप गलती से प्रमाणपत्र या असममित कुंजी खो देते हैं, तो आपके पास बैकअप फ़ाइल को पुनर्स्थापित करने का अवसर कभी नहीं होगा। इस प्रकार, प्रमाणपत्र या असममित कुंजी को सुरक्षित स्थान पर रखना बहुत महत्वपूर्ण है।

डेटाबेस बैकअप एन्क्रिप्शन लाभ

  • डेटा सुरक्षित करने में मदद करता है।
  • ट्रांसपेरेंट डेटा एन्क्रिप्शन (TDE) की मदद से एन्क्रिप्ट किए गए डेटाबेस पर लागू किया जा सकता है।
  • SQL सर्वर द्वारा बनाए गए बैकअप के लिए समर्थित Microsoft Azure के लिए प्रबंधित बैकअप जो ऑफ-साइट बैकअप के लिए अतिरिक्त सुरक्षा प्रदान करता है।
  • एईएस 256 बिट तक कई एन्क्रिप्शन एल्गोरिदम का समर्थन करता है। यह आपको एक एल्गोरिथम चुनने की अनुमति देता है जो आपकी आवश्यकताओं को पूरा करता है।
  • एन्क्रिप्शन कुंजियों को विस्तारित कुंजी प्रबंधन (EKM) प्रदाताओं के साथ एकीकृत करना संभव है।

सिस्टम टेबल में बदलाव

एन्क्रिप्टेड बैकअप बनाते समय, कुछ जानकारी MSDB . में दर्ज की जाती है सिस्टम डेटाबेस:कुंजी एल्गोरिथम, एन्क्रिप्शन प्रकार, और एन्क्रिप्शन थंबप्रिंट का उपयोग किया गया।
बैकअपसेट तालिका में प्रत्येक बैकअप सेट के लिए एक जानकारी होती है। बैकअप सेट में एकल, सफल बैकअप ऑपरेशन के लिए बैकअप होता है।
निम्न कॉलम:key_algorithm , encryptor_thumprint , encryptor_type इस DMV के बारे में जानकारी संग्रहीत करता है कि क्या बैकअप एन्क्रिप्ट किया गया है, एन्क्रिप्टर प्रकार, और एन्क्रिप्टर थंबप्रिंट।

SELECT TOP 5
    name,
    key_algorithm,
    encryptor_thumbprint,
    encryptor_type
FROM msdb.dbo.backupset AS backupset with (NOLOCK)
WHERE type IN ('D', 'I') AND database_name = 'AdventureWorks2014'
ORDER BY backupset.backup_start_date  DESC
GO

यहाँ आप क्या देखेंगे:

बैकअपसेट तालिका के बारे में अधिक जानकारी प्राप्त करने के लिए, निम्न MSDN दस्तावेज़ पृष्ठ पढ़ें:बैकअपसेट (Transact-SQL)

बैकअपमीडियासेट तालिका में प्रत्येक बैकअप मीडिया सेट के लिए एक जानकारी होती है। is_encrypted कॉलम इंगित करता है कि बैकअप एन्क्रिप्ट किया गया है या नहीं। 0 - एन्क्रिप्टेड नहीं और 1 - एन्क्रिप्टेड। प्रारंभ में, यह मान NULL पर सेट है जो गैर-एन्क्रिप्टेड बैकअपमीडियासेट इंगित करता है।

SELECT TOP 5
    media_set_id,
    is_encrypted, 
    is_compressed
FROM msdb.dbo.backupmediaset AS mediaset with (NOLOCK)
ORDER BY mediaset.media_set_id DESC
GO

परिणामसेट:

डेटाबेस बैकअप एन्क्रिप्शन विधियां

<एच3>1. SQL सर्वर के लिए dbForge Studio की मदद से

SSMS की मदद से डेटाबेस बैकअप एन्क्रिप्शन बनाना संभव है, लेकिन मैं व्यक्तिगत रूप से SQL सर्वर के लिएdbForge Studio को प्राथमिकता देता हूं - SQL सर्वर प्रबंधन, प्रशासन, विकास, डेटा रिपोर्टिंग और विश्लेषण के लिए एक शक्तिशाली IDE। यह आईडीई डेटाबेस डेवलपर्स के लिए स्विस चाकू की तरह है। उपकरण आवश्यक सुविधाएँ प्रदान करता है जो एक अच्छी तरह से डिज़ाइन किए गए और सहज ज्ञान युक्त GUI में लिपटे हुए हैं। प्रमुख विशेषताओं से परिचित होने के लिए, SQL सर्वर के लिए dbForge Studio देखें - परिचयात्मक वीडियो का अवलोकन करें (04:03 मिनट):

एक बार जब आप टूल को डाउनलोड और इंस्टॉल कर लेते हैं, तो आपको डेटाबेस कनेक्शन बनाने की आवश्यकता होती है।

ध्यान दें कि बैकअप एन्क्रिप्शन सुविधा SQL Server 2014 में पेश की गई है। SQL सर्वर एक्सप्रेस बैकअप के दौरान एन्क्रिप्शन का समर्थन नहीं करता है।

1. एक बार जब आप एक आवश्यक SQL सर्वर इंस्टेंस से कनेक्ट हो जाते हैं, तो डेटाबेस एक्सप्लोरर . में , सर्वर ट्री का विस्तार करने के लिए सर्वर नाम पर क्लिक करें।

2. किसी आवश्यक डेटाबेस पर राइट-क्लिक करें, कार्य को इंगित करें, और फिर बैक अप . क्लिक करें . बैक अप डेटाबेस संवाद बॉक्स प्रकट होता है।

कनेक्शन . में सूची बॉक्स, कनेक्शन नाम की जाँच करें। आप वैकल्पिक रूप से सूची से भिन्न कनेक्शन का चयन कर सकते हैं।

3. मीडिया विकल्प के साथ आगे बढ़ने के लिए अगला क्लिक करें ।

यदि आप बैकअप डेटाबेस विज़ार्ड के मीडिया विकल्प पृष्ठ पर मौजूदा बैकअप सेट विकल्प में संलग्न करना चुनते हैं तो एन्क्रिप्शन विकल्प अक्षम हो जाता है। नए मीडिया सेट के लिए बैकअप चुनें, और सभी मौजूदा बैकअप सेट मिटा दें।
प्रक्रिया शुरू करने से पहले प्रमाणपत्र/कुंजी बनाएं। बैकअप डेटाबेस विज़ार्ड शुरू करने से पहले बनाए गए प्रमाणपत्र या असममित कुंजी को ड्रॉप-डाउन में सूचीबद्ध किया जाएगा।

नए मीडिया सेट का बैक अप चुनें, और सभी मौजूदा बैकअप सेट मिटाएं एक नया बैकअप बनाने का विकल्प। मीडिया सेट नाम . में एक नाम दर्ज करें टेक्स्ट बॉक्स, और, वैकल्पिक रूप से, मीडिया सेट विवरण . में मीडिया सेट का वर्णन करें टेक्स्ट बॉक्स।

4. बैकअप विकल्प के साथ आगे बढ़ने के लिए अगला क्लिक करें ।

इस पेज पर, एनक्रिप्ट बैकअप विकल्प चुनें। एल्गोरिथम और प्रमाणपत्र या असममित कुंजी का चयन करें। बैक अप क्लिक करें . मेरे मामले में इस प्रक्रिया में कई सेकंड लगते हैं।

<एच3>2. Transact-SQL कथनों का उपयोग करना

हम BACKUP DATABASE . का उपयोग करेंगे डेटाबेस बैकअप और बैकअप लॉग . बनाने के लिए कथन लेन-देन लॉग बैकअप फ़ाइल बनाने के लिए।

पूर्ण डेटाबेस बैकअप

इस प्रकार का बैकअप पूरे डेटाबेस का बैकअप लेता है। इसमें लेन-देन लॉग का एक भाग शामिल होता है ताकि पूर्ण डेटाबेस बैकअप को पुनर्स्थापित करने के बाद पूर्ण डेटाबेस को पुनर्प्राप्त किया जा सके।

निम्नलिखित कोड एक पूर्ण डेटाबेस एन्क्रिप्टेड बनाता है निर्दिष्ट प्रमाणपत्र और एन्क्रिप्शन एल्गोरिथम का उपयोग करके दिए गए स्थान पर बैकअप लें।

BACKUP DATABASE AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, Full',
    FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 5, COMPRESSION,
ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO

नोट, यदि एन्क्रिप्शन के लिए उपयोग किए गए प्रमाणपत्र का बैकअप कभी नहीं लिया गया है, तो बैकअप पूर्ण होने पर निम्न चेतावनी होती है। सुनिश्चित करें कि आप प्रमाणपत्र से जुड़ी निजी कुंजी के साथ प्रमाणपत्र का बैकअप लेते हैं:

चेतावनी :डेटाबेस एन्क्रिप्शन कुंजी को एन्क्रिप्ट करने के लिए उपयोग किए गए प्रमाणपत्र का बैकअप नहीं लिया गया है। आपको प्रमाणपत्र और प्रमाणपत्र से जुड़ी निजी कुंजी का तुरंत बैकअप लेना चाहिए। यदि प्रमाणपत्र कभी अनुपलब्ध हो जाता है या यदि आपको डेटाबेस को किसी अन्य सर्वर पर पुनर्स्थापित या संलग्न करना है, तो आपके पास प्रमाणपत्र और निजी कुंजी दोनों का बैकअप होना चाहिए या आप डेटाबेस को खोलने में सक्षम नहीं होंगे।

डिफरेंशियल डेटाबेस बैकअप

इस प्रकार का बैकअप बनाते समय, डेटाबेस या फ़ाइल बैकअप में केवल डेटाबेस या फ़ाइल के पिछले पूर्ण बैकअप के बाद से परिवर्तित भाग होते हैं। साथ ही, इस प्रकार का बैकअप आमतौर पर पूर्ण बैकअप की तुलना में कम जगह लेता है।

निम्न कोड एक अंतर डेटाबेस बनाता है एन्क्रिप्टेड निर्दिष्ट प्रमाणपत्र और एन्क्रिप्शन एल्गोरिथम का उपयोग करके दिए गए स्थान पर बैकअप लें।

BACKUP DATABASE AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, Differential',
    FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 5,
 COMPRESSION, DIFFERENTIAL,
ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO

डेटाबेस लेनदेन लॉग बैकअप

SQL सर्वर डेटाबेस में डेटा फ़ाइलों के अलावा एक या एक से अधिक लेन-देन लॉग फ़ाइलें होती हैं, जो प्रत्येक लेनदेन द्वारा किए गए सभी लेनदेन और डेटाबेस संशोधनों को रिकॉर्ड करती हैं। लेन-देन की जानकारी केवल उन डेटाबेस में एकत्र की जाती है जहां डेटाबेस पुनर्प्राप्ति मोड पूर्ण . पर सेट होता है पुनर्प्राप्ति या थोक-लॉग किया गया वसूली।

निम्न कोड डेटाबेस लेनदेन लॉग बनाता है एन्क्रिप्टेड निर्दिष्ट प्रमाणपत्र और एन्क्रिप्शन एल्गोरिथम का उपयोग करके दिए गए स्थान पर बैकअप लें।

BACKUP LOG AdventureWorks2014
TO DISK = 'D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'
WITH NAME = N'AdventureWorks2014, Compressed, Encrypted, TLog',
    FORMAT, INIT, SKIP, STATS = 5, COMPRESSION, ENCRYPTION
(
    ALGORITHM = AES_256, SERVER CERTIFICATE = Cert1
)
GO
<एच3>3. पावरशेल का उपयोग करना

SQL सर्वर 2014 आपको Windows Powershell का उपयोग करके डेटाबेस का बैकअप लेने की अनुमति देता है। निम्न कोड एन्क्रिप्शन विकल्प बनाता है और इसे बैकअप-एसक्लडेटाबेस कमांडलेट में पैरामीटर मान के रूप में उपयोग करता है:

$encryptionOption=New-SqlBackupEncryptionOption –Algorithm Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”
Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –BackupFile “D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak” –CompressionOption On –EncryptionOption $encryptionOption

उपर्युक्त दृष्टिकोणों की तुलना में, इसमें कोई संदेह नहीं है कि एन्क्रिप्टेड डेटाबेस बैकअप बनाना काफी आसान काम है जब आपके पास सही उपकरण होता है, जैसे SQL सर्वर के लिए dbForge Studio देवर्ट से।

अतिरिक्त पठन

मेरे मित्र, पिनाल डेव - SQL सर्वर प्रौद्योगिकी उत्साही, स्वतंत्र सलाहकार, विभिन्न SQL सर्वर पुस्तकों के लेखक, और Pluralsight पाठ्यक्रम, ने एक उत्कृष्ट लेख लिखा है, जिसे मैं आपको आगे पढ़ने के लिए सुझाव दूंगा:SQL सर्वर - बैकअप एन्क्रिप्शन का एक व्यावहारिक उपयोग

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में STRING_ESCAPE () फ़ंक्शन कैसे काम करता है

  2. एसक्यूएल सर्वर 2008 पेजिंग विधियां?

  3. SQL सर्वर निष्पादन योजना - यह क्या है और यह प्रदर्शन समस्याओं में कैसे मदद करता है?

  4. SQL सर्वर में एक अदिश उपयोगकर्ता-परिभाषित फ़ंक्शन बनाएँ

  5. संग्रहीत कार्यविधि से एकाधिक तालिकाएँ लौटाना