it-swarm.asia

PgAdmin III - كيفية الاتصال بقاعدة البيانات عندما تكون كلمة المرور فارغة؟

لقد قمت بتثبيت PostgreSQL 9.1 على جهاز الكمبيوتر الخاص بي (Win 7). لدي تطبيق صغير Java تطبيق متصل به بنجاح مع login=sa و password="". يعمل الاتصال.

ومع ذلك ، تم رفضه من PgAdmin III نفسه. انا حصلت:

Error connecting to the server: fe_sendauth: no password supplied

كيف يمكنني الاتصال بقاعدة البيانات الخاصة بي من PgAdmin III بكلمة مرور فارغة؟

تحرير

هذا مجرد اختبار ، وليس رمز الإنتاج.

21
Jérôme Verstrynge

يمكنني الاتصال بمثيل postgres الخاص بي من pgAdmin III بدون كلمة مرور لأي مستخدم بما في ذلك المستخدمون الخارقون مثل postgres.

نظرًا لأنك تقوم بالاتصال على ما يرام من عميل آخر ، فلا يوجد سبب يمنعك من الاتصال من pgAdmin إذا كانوا على نفس محطة العمل - ما لم تسمح بعض قواعد جدار الحماية على العميل نفسه ببرنامج واحد وليس ببرنامج آخر.

إذا كانت المشكلة خاصة بهذا العميل ، فقد تحتاج إلى تغيير واحد أو أكثر من:

  • pg_hba.conf
استضافة جميع 192.168.0.nnn/32 الثقة
  • postgresql.conf
listen_addresses = '*'
  • جدار الحماية على خادم postgres ، مثل iptables:
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT

لكن أوصي بعدم القيام بأي من هذا. الدليل يقول ما يلي لسبب وجيه:

مصادقة الثقة مناسبة فقط لاتصالات TCP/IP إذا كنت تثق في كل مستخدم على كل جهاز مسموح له بالاتصال بالخادم عن طريق خطوط pg_hba.conf التي تحدد الثقة. نادراً ما يكون من المعقول استخدام الثقة لأي اتصالات TCP/IP غير تلك من المضيف المحلي (127.0.0.1).

بدلاً من ذلك ، ضع في اعتبارك إما:

  • باستخدام كلمة مرور وتحديد MD5
  • نفق منفذ 5432 عبر سه
10
Jack says try topanswers.xyz

لقد وجدت هذه الإجابة في مكان آخر.

إذا كانت قاعدة بياناتك موجودة على المضيف المحلي ، فحاول ترك حقل المضيف فارغًا في الاتصال بدلاً من استخدام "localhost" أو "127.0.0.1 ″. هذا يخبر PgAdmin بالاتصال عبر مقبس unix المحلي بدلاً من TCP.

31
Alex Jodidio