অন্য সার্ভারে এনক্রিপ্ট করা ডাটাবেস পুনরুদ্ধার করুন


10

আমি এমন একটি পণ্য ব্যবহার করছি যা এসকিউএল সার্ভার ২০০৮-তে চলে। আমি যখন পণ্যটি ইনস্টল করেছি তখন আমি ডাটাবেসটি এনক্রিপ্ট করার জন্য একটি পাসওয়ার্ড নির্দিষ্ট করেছি। আমি অন্য সার্ভারে পরীক্ষার জন্য পণ্যটির অন্য অনুলিপি চালাতে চাই। আমি অন্য সার্ভারে ডাটাবেস পুনরুদ্ধার করেছি এবং সেই অন্যান্য সার্ভারে পণ্যটি ইনস্টল করেছি। আমি এটি ইনস্টল করার সময় আমি একই পাসওয়ার্ড সরবরাহ করেছি এবং তারপরে মূল সার্ভার থেকে একটি ব্যাকআপ পুনরুদ্ধার করেছি। তবে আমি ত্রুটি বার্তা পাচ্ছি:

System.Data.SqlClient.SqlException: An error occurred during decryption.

পণ্য থেকে। আমি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও ব্যবহার করে টেবিলগুলি অ্যাক্সেস করতে পারি।

আমি এটি চেষ্টা করেছি:

প্রথম সার্ভারে:

CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff'

BACKUP CERTIFICATE  cert1 TO FILE = 'd:\backup\cert1.dat' 
WITH PRIVATE KEY 
(
ENCRYPTION BY PASSWORD = 'mypassword',
FILE = 'd:\backup\cert1_privatekey.dat'
)

দ্বিতীয় সার্ভারে:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mypassword'

CREATE CERTIFICATE cert1 FROM FILE = 'd:\cert1.dat'
WITH PRIVATE KEY
(
FILE = 'd:\cert1_privatekey.dat',
DECRYPTION BY PASSWORD = 'mypassword'
)

আমি এটি দ্বিতীয় সার্ভারেও চেষ্টা করেছি:

alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'

তবে এটি একটি অসম্পূর্ণ কী সম্পর্কে ত্রুটি বার্তা দিয়েছে।

আমি প্রথম সার্ভার থেকে দ্বিতীয় সার্ভারে ব্যাকআপটি কীভাবে পুনরুদ্ধার করব?

হালনাগাদ:

ডাটাবেসে পাশাপাশি একটি অসমमित এবং প্রতিসম কী আছে। যদি আমি অ্যাসিমেট্রিক কী ব্যবহার করে প্রতিসাম্য কীটি খুলি তবে আমিও একই ত্রুটি পেয়েছি, তাই আমি মনে করি সে কারণেই এটি কাজ করছে না - কোনওরূপে কীগুলি এমনভাবে স্থানান্তর করা হচ্ছে না যেগুলি ব্যবহার করা যেতে পারে।

উত্তর:


8

আমি মিররিং এবং টিডিই সম্পর্কে একটি ব্লগ এন্ট্রি লিখেছি

মাধ্যমিক সার্ভারে ডিবি পাওয়ার জন্য আমার কোড লাইনের দরকার ছিল:

 OPEN MASTER KEY DECRYPTION BY PASSWORD = 'SomePassword'
 ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
 GO

পাসওয়ার্ডটি হ'ল যা আমি মাস্টার কী ফাইলটি এনক্রিপ্ট করতে ব্যবহার করি। ২ য় এসকিউএল সার্ভারে কমান্ড দেওয়ার পরে, সবকিছু দুর্দান্তভাবে খেলল played এখানে আমি তৈরি db.stackex بدل পোস্ট।


এই ব্লগ এন্ট্রি দরকারী। আমি "মাস্টার" এর পরিবর্তে আমি যে বিশেষ ডাটাবেসটি অনুলিপি করতে চাই তা ব্যবহার করেই তা অনুসরণ করেছি। আমি ত্রুটিটি পেয়েছি "পুরানো মাস্টার কী দ্বারা এনক্রিপ্ট করা 'অসম_সামিং' অসম্পূর্ণ কীটি ডিক্রিপ্ট করার সময় একটি ত্রুটি ঘটেছে FOR ফোর্স বিকল্পটি এই ত্রুটিটিকে উপেক্ষা করতে এবং ক্রিয়াকলাপ চালিয়ে যেতে ব্যবহার করা যেতে পারে, তবে ডেটা যা পুরানো মাস্টার কী দ্বারা ডিক্রিপ্ট করা যায় না অনুপলব্ধ হয়ে যাবে। " যখন আমি ফাইল থেকে মাস্টার কী পুনরুদ্ধার করব। আমি এটা জোর করা উচিত? (এটি আমি ডাটাবেস পুনরুদ্ধার করার পরে এসেছি, যেখানে আপনার নির্দেশাবলী পরে পুনরুদ্ধার করা আছে))
পলমোরিস

1
ধন্যবাদ, এটি বের করতে আমার অনেক বেশি সময় লেগেছিল হ্যাঁ, আমি নিশ্চিত না যে আপনি এটি জোর করা উচিত। আমি এটি যেভাবে বুঝতে পারি, "কীগুলি" প্রতিটি সার্ভারে মাস্টার ডাটাবেসের সাথে আবদ্ধ। ডাটাবেসের সাথে আবদ্ধ একমাত্র জিনিসটি সেই মাস্ট কী দ্বারা স্বাক্ষরিত শংসাপত্র। সুতরাং আপনাকে সার্ভার 1 এ একটি মাস্টার কী তৈরি করতে হবে, এটিকে ব্যাক আপ করুন, তারপরে সার্ভার ২-তে কীটি পুনরুদ্ধার করুন Then আমি আশা করি অন্য কেউ এই বিষয়ে কিছু আলোকপাত করতে পারে।
রেটকন্ট্রোল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.