2008-10-17 16 views
5

ओरेकल में ऑपरेटिंग सिस्टम उपयोगकर्ता द्वारा ओरेकल से कनेक्ट होने वाले प्रोग्राम चलाने वाले ऑपरेटिंग सिस्टम उपयोगकर्ता द्वारा डेटाबेस उपयोगकर्ताओं की पहचान करने की अनुमति देने की यह अवधारणा है। here देखें।उपयोगकर्ता नाम या पासवर्ड के बिना ओरेकल से कनेक्शन

यह उदाहरण के लिए एक यूनिक्स मशीन पर है कि उपयोगकर्ता के रूप में, तुम क्या करने की अनुमति देता है, आदेश में इस तरह के रूप में एक:

sqlplus/

मैं जो उपयोगकर्ता नाम या पासवर्ड के बिना जोड़ता है ओरेकल 10.2 के लिए एक जावा प्रोग्राम लिखने के लिए प्रयास कर रहा हूँ । यूआरएल की स्पष्ट पसंद:

jdbc:oracle:thin:/@localhost:1521:MYDBSID 

काम नहीं करता है, एक त्रुटि दे रहा है (क्षमा करें मुझे अभी त्रुटि उपलब्ध नहीं है)।

मैंने इसे करने के कई अन्य रूपों का भी प्रयास किया है, लेकिन बिना किसी किस्मत के।

क्या किसी के पास कोई सुझाव है कि मैं ओएस पहचान विधि का उपयोग कर जावा प्रोग्राम को ओरेकल से कैसे जोड़ सकता हूं?

उत्तर

5

जेडीबीसी थिन ड्राइवर 100% शुद्ध जावा कार्यान्वयन है जो ऑपरेटिंग सिस्टम से आवश्यक जानकारी एकत्र नहीं कर सकता है।

जेडीबीसी ओसीआई ड्राइवर यह कर सकता है! jdbc:oracle:oci8:/@MYDBSID का उपयोग करें, इसकी आवश्यकता होगी कि उस मशीन पर ओरेकल ड्राइवर स्थापित हो, कोई समस्या नहीं है (और बूट करने के लिए तेज़ है और पतली चालक की तुलना में कई और सुविधाओं का समर्थन करता है)

+2

यह ओरेकल जेडीबीसी ड्राइवर्स के पुराने संस्करणों के लिए सच है लेकिन नए संस्करणों (ojdbc5.jar और ojdbc6.jar) के लिए सच नहीं है। आपको अभी भी उपयोगकर्ता को कनेक्शन देना होगा, लेकिन इसे यहां दस्तावेज़ों के अनुसार काम करना चाहिए: http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/clntsec.htm#CIHCBCBC – Nick

1

जेडीबीसी चालक जो ओरेकल जहाजों में आपके द्वारा प्रदान किए गए यूआरएल से ओएस उपयोगकर्ता नाम और पासवर्ड एकत्र करने की क्षमता नहीं है। मान लीजिए, ओरेकल के लिए तीसरे पक्ष के जेडीबीसी ड्राइवर प्रदाता हैं, उनमें से एक कार्यक्षमता प्रदान कर सकता है जिसे आप पूछ रहे हैं। आपको चारों ओर Google करना चाहिए।

0

यदि आप ओरेकल तक पहुंच रहे हैं एक जे 2 ईई ऐपसेवर से, आप डेटा स्रोत प्राप्त करने के लिए जेएनडीआई का उपयोग कर एक समान अंत प्राप्त कर सकते हैं।

1

उत्तर देने वालों के लिए धन्यवाद। हम ओसीआई चालक के साथ गए हैं।

मुझे लगता है कि Oracle 11g पतली चालक हालांकि के माध्यम से समर्थन ओएस उपयोगकर्ता प्रमाणीकरण करता सुझाव देने के लिए प्रलेखन मिला:

http://www.orindasoft.com/public/Oracle_JDBC_JavaDoc/javadoc1110/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_THIN_VSESSION_OSUSER

मैं एक 11g इस पर परीक्षण करने के लिए सेटअप नहीं है, इसलिए मैं यह काम नहीं कर सकता है।

+0

बस के लिए आपकी जानकारी: ओरेकल 10 जी डेटाबेस पर ओरेकल 11 जी जेडीबीसी पतली चालक का उपयोग ओएस उपयोगकर्ता प्रमाणीकरण के साथ काम करता है (मैंने इसका परीक्षण किया है)। लेकिन ध्यान रखें कि यह वास्तव में सुरक्षित नहीं है, क्योंकि कोई ऊपर वर्णित संपत्ति को प्रोग्रामेटिक रूप से बदल सकता है। भले ही रिमोट ओएस प्रमाणीकरण की अनुमति नहीं है, एक ही मशीन पर एक अनधिकृत उपयोगकर्ता से एक प्रोग्राम चलाने के लिए अभी भी इस मामले में एक उच्च जोखिम है। –

+0

ड्राइवर ओरेकल वॉलेट सेट अप के साथ कनेक्शन स्ट्रिंग/@ TWO_TASK के लिए काम करेगा? क्या कोई नमूना जावा कनेक्शन कोड है? – johnsam

0

निम्नलिखित JDBC कोशिश: ओरेकल: पतली: उपयोगकर्ता नाम/पासवर्ड @ स्थानीय होस्ट: 1521: MYDBSID

आप खाते की जानकारी/निर्दिष्ट करने के लिए

sqlplus एक यूनिक्स पर sysdba के रूप में की जरूरत है मशीन जो ऑपरेशन सिस्टम ऑटेंटिकेशन

-1

jdbc:oracle:oci:@ ओजेडीबीसी 6 के साथ काम करती है।जार और ओरेकल 11 जी 2

0

जेडीबीसी पतली चालक में ओएस प्रमाणीकरण समर्थन 11 जी में जोड़ा गया था (आप ओटीएन पर 11.2.0.4 से जेडीबीसी पतली चालक डाउनलोड कर सकते हैं)।

ध्यान दें कि आपको सर्वर पर (टीसीपी से अधिक) पर दूरस्थ ओएस प्रमाणीकरण की अनुमति है अन्यथा यह केवल आईपीसी या बीईक्यू का उपयोग करके एसकप्लस के साथ काम करेगा। यदि आप उपयोगकर्ता क्लाइंट मशीन पर "osuserdemo" है, इस तरह एक डेटाबेस उपयोगकर्ता बनाने

REMOTE_OS_AUTHENT = TRUE 

तब और पुनः आरंभ डीबी: अपने init.ora फ़ाइल में, यह जोड़ने

CREATE USER OSUSERDEMO IDENTIFIED EXTERNALLY; 
GRANT CONNECT,CREATE SESSION,RESOURCE TO OSUSERDEMO; 

और जेडीबीसी पतली चालक किसी भी उपयोगकर्ता नाम या पासवर्ड के बिना कनेक्ट करने में सक्षम होना चाहिए।

यह ध्यान देने योग्य है कि इस सुविधा को अत्यधिक असुरक्षित माना जाता है - 12 सी में डी-समर्थित किया गया है।

संबंधित मुद्दे