هل يمكنني الاتصال ب SQL Server باستخدام مصادقة Windows من جافا EE webapp?

StackOverflow https://stackoverflow.com/questions/167464

سؤال

أنا حاليا التحقيق في كيفية إجراء اتصال إلى قاعدة بيانات SQL Server من جافا EE تطبيق ويب باستخدام مصادقة Windows بدلا من مصادقة خادم SQL.أنا تشغيل هذا التطبيق من هر 6.0, وأنا باستخدام Microsoft برنامج تشغيل JDBC.الاتصال خصائص الملف كما يلي:

dbDriver              = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbUser                = user
dbPass                = password
dbServer              = localhost:1433;databaseName=testDb
dbUrl                 = jdbc:sqlserver://localhost:1433

ليس لدي أي مشاكل مع الاتصال إلى قاعدة بيانات SQL Server في هذه الموضة عند استخدام مصادقة SQL Server.

هل هناك أي طريقة يمكنني استرداد بيانات اعتماد المستخدم مصادقة Windows و استخدام أن مصادقة SQL Server?

التحديث:أنا أعرف في ASP.net هناك طريقة إعداد مصادقة Windows الوصول إلى webapp, وهو بالضبط ما أبحث عنه, إلا أنني أريد أن يمر هذا المنوال إلى SQL Server الوصول إلى قاعدة البيانات.

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

المحلول

ولا أعتقد أنه يمكن أن تدفع بيانات اعتماد المستخدم من المستعرض إلى قاعدة البيانات (و هل هذا منطقي ؟ أعتقد لا)

ولكن إذا كنت ترغب في استخدام بيانات اعتماد المستخدم تشغيل هر للاتصال بـ SQL Server ثم يمكنك استخدام Microsoft برنامج تشغيل JDBC.فقط بناء JDBC رابط مثل هذا:

jdbc:sqlserver://localhost;integratedSecurity=true;

و نسخ DLL المناسبة إلى هر بن دليل (sqljdbc_auth.dll تقدم مع السائق)

MSDN > الاتصال إلى ملقم SQL مع برنامج تشغيل JDBC > بناء على اتصال URL

نصائح أخرى

انظر

http://jtds.sourceforge.net/faq.html#driverImplementation

ما هو URL تنسيق المستخدمة من قبل jTDS?

URL شكل jTDS هو:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

...المجال يحدد مجال Windows للمصادقة.إذا كانت موجودة اسم المستخدم وكلمة المرور المقدمة ، jTDS يستخدم ويندوز (NTLM) المصادقة بدلا من المعتاد مصادقة خادم SQL (أيالمستخدم وكلمة المرور المقدمة المجال المستخدم وكلمة المرور).هذا يسمح لغير عملاء Windows تسجيل الدخول إلى الخوادم التي هي فقط تهيئتها لقبول مصادقة Windows.

إذا كان المجال المعلمة هي موجودة ولكن لا يوجد اسم المستخدم وكلمة المرور المقدمة ، jTDS يستخدم أصلية-تسجيل الدخول الأحادي المكتبة والسجلات في تسجيل Windows بيانات اعتماد المستخدم (هذا واحد من الواضح أن تحتاج إلى أن تكون على ويندوز تسجيل الدخول إلى مجال ، و أيضا SSO مكتبة تثبيت-استشارة التمهيدي.SSO في التوزيع على كيفية القيام بذلك).

يعمل هذا في الواقع بالنسبة لي:

في التمهيدي.SSO الذي يأتي مع jtdsd التوزيع:

من أجل الدخول الموحد إلى العمل ، jTDS يجب أن تكون قادرا على تحميل الأصلي SPPI المكتبة ntlmauth.dll.هذا DLL في أي مكان في مسار النظام (يحددها PATH متغير النظام) و كنت كل مجموعة.

أنا وضعت في بلدي jre/bin

لقد تم تكوين منفذ مخصص مثيل sql server (2302) التخفيف من الحاجة مثيل الاسم فقط ما أقوم به.lportal هو اسم قاعدة البيانات.

jdbc.default.url=jdbc:jtds:sqlserver://192.168.0.147:2302/lportal;useNTLMv2=true;domain=mydomain.local

لم يكن لديك حقا سبب مقنع لعدم أقترح التخندق MS تشغيل JDBC.

بدلا من, استخدام jtds jdbc driver.قراءة التمهيدي.SSO الملف في jtds التوزيع على كيفية تكوين واحد علامة على (الأم المصادقة) وأين يضع DLL الأصلي للتأكد من أنه يمكن أن يتم تحميلها من قبل JVM.

كنت أعاني من مشكلة مع الاتصال MS SQL server 2005 باستخدام مصادقة Windows.كنت قادرة على حل المشكلة مع المساعدة من هذا المنتدى وغيره من المنتديات.هنا هو ما فعلته:

  1. تثبيت JTDS سائق
  2. لا تستخدم "domain=" الملكية في jdbc:jtds:://[:][/][;=[;...]] سلسلة
  3. تثبيت ntlmauth.dll في c:\windows\system32 الدليل (تسجيل dll لم يكن مطلوبا) على ملقم ويب آلة.
  4. تغيير تسجيل الدخول الهوية Apache Tomcat الخدمة إلى مجال المستخدم مع إمكانية الوصول إلى قاعدة بيانات SQL server (أنه ليس من الضروري على المستخدم الوصول إلى dbo.ماجستير).

بيئتي:ويندوز XP clinet استضافة Apache Tomcat 6 مع MS SQL 2005 الخلفية على ويندوز 2003

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