Oracle इंस्टेंट क्लाइंट के साथ नाम देखने के लिए LDAP का उपयोग करें


14

आंशिक रूप से ओरेकल क्लाइंट की पूर्ण स्थापना के साथ परस्पर विरोधी संस्करणों या बिटनेस के साथ समस्याएं होने के परिणामस्वरूप, मेरी विकास टीम (जिसमें मैं एक सदस्य हूं) ओरेकल इंस्टेंट क्लाइंट का उपयोग करने की ओर बढ़ रहा है और अधिकांश के लिए हमारे विकास मशीनों पर स्थापना से बच रहा है नई परियोजनाएं। यह बहुत अच्छी तरह से काम किया है, यहां तक ​​कि हम इस सेटअप के साथ उत्पादन के लिए तैनात हैं। चूंकि हम ज्यादातर एक .NET शॉप हैं, इसलिए हम जावा एक के बजाय मूल क्लाइंट (.NET रैपर के साथ) का उपयोग कर रहे हैं।

अब एक क्लाइंट को यह आवश्यक है कि हम डेटाबेस सेवा को LDAP सर्वर के साथ पंजीकृत करें और नाम देखो के लिए LDAP सर्वर का उपयोग करें। उन्होंने प्रदान की है sqlnet.oraऔर ldap.oraफ़ाइलें (और एक एन्क्रिप्शन एन्क्रिप्शन फ़ाइल) सही प्रतीत होती हैं। विशेष रूप से, sqlnet.oraफ़ाइल शुद्ध सेवा नामों को देखने के लिए एक संभावित स्रोत के रूप में LDAP निर्दिष्ट करती है:

names.directory_path=(tnsnames,ldap)

मुझे विश्वास है कि मैं जिस मशीन के साथ काम कर रहा हूं, वह एलडीएपी सेवा का उपयोग करने के लिए उपयोग कर सकता है क्योंकि मैं एसक्यूएल डेवलपर (जो मुझे सीधे एलडीएपी जानकारी इनपुट करने की अनुमति देता है) का उपयोग करने में सक्षम था। यह मानते हुए कि वे सही हैं, मैं इस कॉन्फ़िगरेशन को पहचानने और नाम देखने के लिए LDAP का उपयोग करने के लिए त्वरित क्लाइंट कैसे प्राप्त कर सकता हूं?

मैंने अब तक क्या कोशिश की है

मैंने TNS_ADMINपर्यावरण चर को उस निर्देशिका में स्थापित करने की कोशिश की है जिसमें प्रदान की गई फाइलें शामिल हैं, और जब यह त्वरित क्लाइंट को एक tnsnames.oraफ़ाइल को पहचानने के लिए ठीक काम करता है , तो यह एलडीएपी को देखने के लिए इसे प्राप्त करने के लिए पर्याप्त नहीं लगता है। यहाँ परिणाम हैं (पथ, उपयोगकर्ता नाम और पासवर्ड परिवर्तित):

(निम्न कमांड विंडोज कमांड प्रॉम्प्ट होने के लिए होता है, लेकिन मुझे लगता है कि लिनक्स पर ऐसा ही कुछ उल्लेखनीय sqlplusहै । यहां देखा गया इंस्टेंट संस्करण भी है, साथ ही उसी निर्देशिका में इंस्टेंट क्लाइंट बायनेरिज़ के साथ।

C:\TEMP>SET TNS_ADMIN=C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>echo %TNS_ADMIN%
C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LOCALTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:22:25 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LDAPTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:24:21 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

पक्षीय लेख

क्या टीएनएस, एलडीएपी, या इंस्टेंट क्लाइंट (या सिर्फ सामान्य ओरेकल क्लाइंट) के लिए टैग हैं जिन्हें इस प्रश्न में जोड़ा जा सकता है? मैं किसी का पता नहीं लगा सका।


क्या यह सही निष्पादन योग्य है? "जहां
स्क्क्लप्लस

@BjarteBrandt हां, यह वही है जिसकी मुझे उम्मीद है कि जब मैं दौड़ूंगा where( C:\TEMP\sqlplus.exe)। अधिक विशिष्ट होने के लिए, sqlplusमशीन पर "स्थापित" नहीं है। यह बस वर्तमान निर्देशिका में बैठा है, इसके बगल में क्लाइंट बायनेरिज़ के साथ। यह निश्चित रूप tnsnames.oraसे TNS_ADMINपर्यावरण चर का उपयोग करके फ़ाइल पर उठा रहा है , क्योंकि यह पूरी तरह से अलग निर्देशिका में बंद है।
jpmc26

@BjarteBrandt यह पुष्टि करने के लिए कि यह सही क्लाइंट बायनेरिज़ का उपयोग कर रहा है, मैं आगे गया और भाग गया where oci.dll। यह अपेक्षित परिणाम भी देता है C:\TEMP\oci.dll:।
jpmc26

एक डोमेन समस्या हो सकती है। क्या आपने भी FQ नाम के साथ प्रयास किया था? (dbname_or_whatever.domainname)
ik_zelf

2
@ ora-600 क्षमा करें, मैं इस प्रश्न के बारे में भूल गया। यह स्वयं को कॉन्फ़िगर की गई फ़ाइलों के साथ समस्याएं थीं, जो हमें हमारे क्लाइंट द्वारा प्रदान की गई थीं। (संभवतः केर्बरोस कॉन्फिग फ़ाइल; मैं ऑफ-हैंड याद नहीं कर सकता।) क्या मजेदार बात है कि मैं ऐसा करने की कोशिश कर रहे देव वातावरण में काम कर रहा था, इसे स्टेजिंग में काम करना उतना ही समस्याजनक था, और यह अभी भी नहीं है जहाँ तक मुझे पता है, में काम करना। (हमने ऐप को काम करने के लिए एक स्थानीय TNS नाम का उपयोग करके समाप्त कर दिया है।) निश्चित रूप से परियोजना के लिए पैसा बर्बाद किया; यहां तक ​​कि अगर / जब यह ठेस में काम करता है, तो लागत की तुलना में निवेश पर वापसी न्यूनतम होगी।
jpmc26

जवाबों:


1

अपनी निर्देशिका में फ़ाइलों sqlnet.oraऔर ldap.oraफ़ाइलों को रखें और $ORACLE_ADMINपर्यावरण चर सेट करना सुनिश्चित करें। मैंने TNS_ADMINनिर्देशिका बनाई

(लिनक्स) my .bashrc

export TNS_ADMIN=/opt/oracle/instantclient_12_1/network/admin
export ORACLE_ADMIN=${TNS_ADMIN}

[ku14lts:/opt/oracle/instantclient_12_1/network/admin]
$ ls
ldap.ora  sqlnet.ora  tnsnames.ora

और मैं एक डीबी से कनेक्ट करने में सक्षम था मेरे में नहीं tnsnames.ora

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.