मैं हमारे SQL सर्वर विकास कर्मचारियों के लिए एक परीक्षण वातावरण बनाने की प्रक्रिया में हूं।
उत्पादन में हमारे पास 3 SQL सर्वर SQL01
होते हैं , जिसमें कई डेटाबेस शामिल होते हैं जिन्हें प्रतिबिंबित किया जाता है SQL02
। SQL03
"स्वचालित विफलता के साथ उच्च सुरक्षा" या तुल्यकालिक कॉन्फ़िगरेशन में गवाह के रूप में कार्य करता है।
मैंने अलग-अलग हार्डवेयर पर सभी तीन मशीनों को वर्चुअलाइज करने के लिए VMWare P2V का उपयोग किया है, मशीनों के SID को फिर से कॉन्फ़िगर किया है, और इन नई मशीनों से हमारे उत्पादन सर्वर के IP पते को ब्लैकहोल किया है।
मैं शुरू में उत्पादन गवाह मशीन को ब्लैकहोल करना भूल गया था, इसलिए टेस्ट मशीनों पर डेटाबेस अभी भी SQL03
गवाह के रूप में मशीन का उपयोग कर रहे थे । इस मुद्दे को ध्यान में रखते हुए, मैंने नए वर्चुअलाइज्ड टेस्ट गवाह को इंगित करने के लिए डेटाबेस पर फिर से कॉन्फ़िगर करने का फैसला किया, इसे कॉल करें TEST03
।
नए गवाह का उपयोग करने के लिए डेटाबेस को फिर से कॉन्फ़िगर करने के लिए, मैंने प्राथमिक सर्वर पर निम्न कमांड दर्ज किया TEST01
:
ALTER DATABASE [TestDB] SET WITNESS = 'TCP://TEST03.domain.inet:5022';
प्रतिक्रिया अप्रत्याशित थी:
The ALTER DATABASE command could not be sent to the remote server instance
'TCP://TEST03.domain.inet:5022'. The database mirroring configuration was
not changed. Verify that the server is connected, and try again.
मैं इस त्रुटि संदेश पर बहुत चिंतित था क्योंकि कॉन्फ़िगरेशन उत्पादन मशीनों पर काम करता है, और परीक्षण मशीनों पर किसी भी तरह से संशोधित नहीं किया गया है।
LOGIN
परीक्षण गवाह पर बनाने के लिए मुझे काम करने के लिए इसे प्राप्त करने के लिए :
CREATE LOGIN [DOMAIN\SQLServiceAccount] FOR WINDOWS WITH DEFAULT_DATABASE [Master];
और GRANT
यह CONNECT
प्रश्न में अंतिम बिंदु पर अधिकार है:
GRANT CONNECT ON ENDPOINT::Mirroring TO [DOMAIN\SQLServiceAccount];
मैं तब नए परीक्षण गवाह के लिए TEST परिवेश पर प्रतिबिंबित डेटाबेस को सफलतापूर्वक इंगित करने में सक्षम था।
मैं उत्पादन गवाह समापन बिंदु का निरीक्षण कैसे कर सकता हूं कि यह देखने के लिए कि इसके साथ सुरक्षा क्या जुड़ी है?
मुझे लगता है कि कुछ सिस्टम कैटलॉग होने चाहिए जिनका मैं निरीक्षण कर सकता हूं, हालांकि बुक्स-ऑन-लाइन के लिए एंडपॉइंट्स के लिए कुछ भी विशिष्ट नहीं लगता है, और बिंग अच्छी तरह से, Bingless है ...
अतिरिक्त जानकारी:
SELECT ep.endpoint_id, p.class_desc, p.permission_name, ep.name, sp.name
FROM sys.server_permissions p
INNER JOIN sys.endpoints ep ON p.major_id = ep.endpoint_id
INNER JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id
WHERE class = '105';
रिटर्न:
endpoint_id class_desc permission_name endpoint_name principal_name
2 ENDPOINT CONNECT TSQL Local Machine public
3 ENDPOINT CONNECT TSQL Named Pipes public
4 ENDPOINT CONNECT TSQL Default TCP public
5 ENDPOINT CONNECT TSQL Default VIA public
तथा:
SELECT name, endpoint_id, protocol_desc, type_desc, role_desc
FROM sys.database_mirroring_endpoints;
यह दिखाता है:
name endpoint_id protocol_desc type_desc role_desc
Mirroring 65536 TCP DATABASE_MIRRORING WITNESS
sys.server_permissions
मिररिंग एंडपॉइंट ऑब्जेक्ट के लिए कोई प्रविष्टि नहीं प्रतीत होती है । 65536 से कोई major_id
और नहीं minor_id
मेल खाता है। इसके अलावा, सिस्टम डेटाबेस में से कोई भी समापन बिंदु के लिए कोई संदर्भ नहीं है।
मुझे हानि हो रही है।