मेरी पिछली पोस्ट में एचडीबीएसक्यूएल से एसएपी हाना क्लाउड तक सुरक्षित कनेक्शन मैंने एचडीबीएसक्यूएल के साथ काम किया था। अब चलिए DBeaver CE की ओर बढ़ते हैं - एक मुफ्त डेटाबेस मैनेजर जिसका उपयोग मैंने पहले की कुछ पोस्टों में किया है। आज इसे नवीनतम अपडेट 7.0.3 मिला है, जिसे मैंने अपनी मशीनों पर पहले ही इंस्टॉल कर लिया है।
SAP हाना क्लाउड…
... नया क्लाउड-देशी SAP HANA उत्पाद है, जिसका उपयोग मेरी पिछली पोस्ट में या थॉमस जंग द्वारा हाल ही में लाइव कोडिंग एपिसोड में किया गया था।
शुरू करने से पहले दो त्वरित नोट:
- आज तक, यह केवल SAP क्लाउड प्लेटफ़ॉर्म में एक सशुल्क सेवा के रूप में उपलब्ध है, लेकिन (आगे दिखने वाले विवरण के बारे में सामान्य अस्वीकरण लागू होता है) परीक्षण संस्करण इस वर्ष के अंत में उपलब्ध होना चाहिए।
- एक अनुस्मारक के रूप में, एक मशीन का आईपी पता जिससे एक डीबी क्लाइंट एसएपी हाना क्लाउड इंस्टेंस से कनेक्ट करने का प्रयास करता है — आपके व्यवस्थापक द्वारा श्वेतसूची में होना चाहिए।
सौभाग्य से, मेरे मामले में, मैं इस एसएपी हाना क्लाउड उदाहरण के व्यवस्थापकों में से एक हूं। तो, यह मेरे आईपी पते से पहुँचा जा सकता है।
मुझे अपने उदाहरण के समापन बिंदु को पकड़ना है, जो है:
2246ed61-81df-48e8-9711-323311f7613f.hana.prod-eu20.hanacloud.ondemand.com:443
।
DBeaver पर वापस...
...जहां आप दो महान चीजें देख सकते हैं:
- एसएपी हाना पहले से ही उपलब्ध ड्राइवरों की सूची में शामिल है और
- हाना JDBC ड्राइवर
ngdbc
आवश्यकता या अद्यतन होने पर स्वचालित रूप से डाउनलोड हो जाता है। यदि आवश्यक हो, तो आप अभी भी उस ड्राइवर को इंगित कर सकते हैं जिसे आपने अपनी मशीन पर पहले से इंस्टॉल किया हुआ हो।
आइए एक नया कनेक्शन बनाएं।
इसलिए, मुझे होस्ट रखना होगा और पोर्ट मेरे हाना क्लाउड इंस्टेंस कॉकपिट से कॉपी किए गए एंडपॉइंट के अनुसार। यह स्वचालित रूप से JDBC URL को पॉप्युलेट करेगा . साथ ही उपयोगकर्ता नाम . पॉप्युलेट करें और पासवर्ड खेत। ठीक है, आइए कनेक्शन का परीक्षण करें… ।
“Receive of connect failed.
"? क्यों? बेशक, आप जानते हैं, अगर आपने पिछली पोस्ट पढ़ी है 😉
ग्राहक SAP हाना क्लाउड से केवल सुरक्षित कनेक्शन स्थापित कर सकते हैं!
आइए इसे जोड़ें encrypt
कनेक्शन के लिए पैरामीटर दुर्भाग्य से, यहीं पर मुझे DBevaer UI कुछ सहज नहीं लगा।
चालक गुण . पर स्विच करें और उपयोगकर्ता गुण . पर राइट-क्लिक करें एक नई संपत्ति जोड़ने के लिए।
दुर्भाग्य से, DBevar ने मुझे encrypt=true
. डालने की अनुमति नहीं दी बस यहीं। इसके बजाय, मैंने encrypt
जोड़ा संपत्ति, और फिर (हमें यह पता लगाने में मुझे आधा घंटा लगा) Value में मेरी संपत्ति के आगे डबल-क्लिक करें संपादित करने के लिए कॉलम। टाइप करें true
वहाँ।
ठीक है, आइए कनेक्शन का परीक्षण करें अब…
यहाँ एक और स्पष्ट अस्वीकरण है।
<ब्लॉकक्वॉट>
व्यवस्थापक उपयोगकर्ता का कभी भी उपयोग न करें, जैसे DBAdmin
, अपना काम करने के लिए!
व्यवस्थापक या विकास के लिए अलग उपयोगकर्ता बनाएं।
हम MacOS पर हैं... क्या हमसे कुछ छूट गया है?
दोबारा, यदि आप पिछली पोस्ट पढ़ते हैं, तो आपको याद होगा कि “DigiCert Global Root CA सुरक्षित संचार स्थापित करने के लिए एसएपी हाना होस्ट को प्रमाणित करने के लिए रूट प्रमाणपत्र की आवश्यकता थी। और आपको याद होगा कि MacOS या Linix पर हमें स्पष्ट रूप से HDBSQL के साथ उस प्रमाणपत्र का उपयोग करना था।
डीबीवर के साथ क्या अलग है? यह एक जावा ऐप है और यह JDBC ड्राइवर का उपयोग कर रहा है। पूरा JRE DBeaver इंस्टालेशन में शामिल है।
और डिफ़ॉल्ट रूप से JRE cacerts
. के साथ आता है रूट प्रमाणपत्रों का भंडार। आइए देखें।
cd /Applications/DBeaver.app/Contents/Eclipse/jre/Contents/Home
bin/keytool -exportcert -cacerts -v -alias "digicertglobalrootca [jdk]" -rfc -storepass changeit
क्या आपको अभी तक भरोसा नहीं है?
व्यक्तिगत रूप से, मैं निश्चित रूप से दोबारा जांच करना चाहूंगा, अगर ये धारणाएं सही हैं।
मेरे मैक पर एक और जावा इंस्टॉलेशन है:
/usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home
तो आइए देखें कि क्या इसका उपयोग trustStore
. प्रदान करने के लिए किया जा सकता है इसके बजाय हमारे JDBC कनेक्शन के लिए संपत्ति।
और विंडोज़ के बारे में क्या?
खैर, ज्यादा अलग नहीं। आप DBeaver के साथ स्थापित डिफ़ॉल्ट JRE का उपयोग करते हैं…
...या आप cacerts
. का उपयोग कर सकते हैं किसी अन्य %JAVA_HOME%
में वितरित किया गया , मेरे मामले में SAP JVM की तरह।
JDBC के बारे में अधिक जानकारी खोज रहे हैं?
https://people.sap.com/daniel.vanleeuwen से एक ट्यूटोरियल उपलब्ध है:ट्यूटोरियल मिशन के एक भाग के रूप में SAP हाना JDBC ड्राइवर का उपयोग करके कनेक्ट करें SAP HANA डेटाबेस को क्वेरी करने के लिए क्लाइंट का उपयोग करें।