سؤال

لدى Oracle هذا المفهوم الذي يسمح بالتعرف على مستخدمي قاعدة البيانات بواسطة مستخدم نظام التشغيل الذي يقوم بتشغيل البرنامج الذي يتصل بـ Oracle.يرى هنا.

يتيح لك هذا، كمستخدم على جهاز يونكس على سبيل المثال، القيام بأمر مثل:

sqlplus /

أحاول كتابة برنامج Java لـ Oracle 10.2 والذي يتصل بدون اسم مستخدم أو كلمة مرور.الاختيار الواضح لعنوان url:

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

لا يعمل، مما يؤدي إلى حدوث خطأ (عذرًا، الخطأ غير متوفر حاليًا).

لقد حاولت العديد من الأشكال الأخرى للقيام بذلك أيضًا، ولكن دون جدوى.

هل لدى أي شخص أي اقتراحات حول كيفية توصيل برنامج Java بـ Oracle باستخدام طريقة تعريف نظام التشغيل؟

هل كانت مفيدة؟

المحلول

والسائق JDBC رقيقة هو 100٪ تنفيذ جافا النقي الذي لا يمكن جمع المعلومات اللازمة من نظام التشغيل.

والسائق JDBC OCI يمكن أن تفعل هذا! استخدام jdbc:oracle:oci8:/@MYDBSID، وسوف تحتاج إلى أن يتم تثبيت برنامج Oracle على هذا الجهاز، ليست مشكلة إذا كان هذا هو الخادم (وأسرع للتمهيد ويدعم العديد من ميزات أكثر من سائق رقيقة)

نصائح أخرى

وسائق جدبك الذي يأتي أوراكل ليس لديها القدرة على جمع اسم المستخدم وكلمة المرور OS من URL التي تقدمها له. لنفترض أن هناك 3rd الطرف مقدمي سائق JDBC لORACLE، واحد منهم قد توفر الوظائف التي كنت طالبا. يجب عليك جوجل حولها.

شكرا لأولئك الذين أجابوا.لقد ذهبنا مع سائق OCI.

لقد وجدت وثائق تشير إلى أن Oracle 11g يفعل دعم مصادقة مستخدم نظام التشغيل عبر برنامج التشغيل الرفيع بالرغم من ذلك:

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

ليس لدي إعداد 11G لاختبار ذلك، لذا لا يمكنني التأكد من نجاحه.

إذا كنت الوصول إلى أوراكل من appserver J2EE، هل يمكن تحقيق نهاية مماثلة باستخدام JNDI للحصول على مصدر البيانات.

يمكن للسائق الرفيع 11 جرام الاتصال باستخدام مصادقة Kerberos.

يرى الاتصال بقاعدة بيانات أوراكل باستخدام Kerberos

ومحاولة التالية جدبك: أوراكل: رقيقة: اسم المستخدم / كلمة المرور @ مضيف محلي: 1521: MYDBSID

وتحتاج إلى تحديد معلومات الحساب

وsqlplus / كما SYSDBA على جهاز يونكس التي تذهب من خلال autentication نظام التشغيل

تمت إضافة

وOS دعم التوثيق في برنامج تشغيل رقيقة JDBC في 11G (يمكنك تحميل برنامج التشغيل رقيقة JDBC من 11.2.0.4 على OTN).

ملحوظة أن لديك للسماح بالمصادقة OS النائية على الخادم (أكثر من TCP) وإلا فإنه سوف يعمل فقط مع sqlplus باستخدام IPC أو بيك محليا. في ملف init.ora، إضافة هذا:

REMOTE_OS_AUTHENT = TRUE

وبعد ذلك إذا كنت مستخدم هو "osuserdemo" على جهاز العميل، إنشاء قاعدة بيانات المستخدم مثل هذا وإعادة تشغيل DB:

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

ويجب أن يكون السائق رقيقة JDBC قادرا على الاتصال دون أي اسم المستخدم أو كلمة المرور.

ومن الجدير بالذكر أن هذه الميزة - تعتبر غير آمنة للغاية - وقد تم دعم دي في 12C

وjdbc:oracle:oci:@ يعمل مع ojdbc6.jar و11g2 أوراكل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top