পিএসকিএল: ফ্যাটাল: ব্যবহারকারী "পোস্টগ্রাস" এর জন্য পরিচয় প্রমাণীকরণ ব্যর্থ হয়েছে


372

আমি আমার উবুন্টু কার্মিক বাক্সে পোস্টগ্রিজ এসকিউএল এবং পিজএডমিনআইআইআই ইনস্টল করেছি।

আমি pgAdminIII সফলভাবে ব্যবহার করতে সক্ষম হয়েছি (অর্থাত্ সংযুক্ত / লগ অন), তবে আমি যখন কমান্ড লাইনে (পিএসএইচএল ব্যবহার করে) একই ব্যবহারকারীর নাম / পিডাব্লুডি ব্যবহার করে সার্ভারে লগইন করতে চেষ্টা করি তখন আমি ত্রুটিটি পেয়েছি:

psql: FATAL:  Ident authentication failed for user "postgres"

কেউ কি এখন এই সমস্যাটি সমাধান করবেন?


এই স্ট্যাকওভারফ্লো পোস্টটি আমার জন্য কাজ করেছে: stackoverflow.com/a/18664239/2110769
Andrea Araldo

উত্তর:


194

আপনি pg_hba.conf এ সঠিক সেটিংস সেট করেছেন?

এটি কীভাবে করবেন তা https://help.ubuntu.com/stable/serverguide/postgresql.html দেখুন ।


36
এটি আমার পক্ষে কাজ করে না। আমি এটি উপর ঘন্টা ব্যয় করেছি! আমি যা করতে চাই তা হ'ল আমার টার্মিনালে PSQL কমান্ড চালানো run ফাইলটি দেখতে এর মতো দেখতে আমার কী দরকার ??
শান

54
@ সিয়ানা আপনার 'সুডো-পোস্ট পোস্ট্রেস পিএসএলএল'-এর মতো কিছু দরকার
জেয়ার্কি

8
'ভুলবেন না'; পিএসকিএল-এর প্রতিটি বিবৃতি শেষে। নির্বোধ শোনায় কিন্তু হেই হয়।
omrsin

42
@ রবার্ট: "পোস্টগ্রেস্কল সবচেয়ে বেশি ব্যবহারকারীর বন্ধুত্বপূর্ণ ডিবি"? কিছুটা দৃষ্টিভঙ্গি পেতে ওরাকলকে কিছুদিন চেষ্টা করুন ... :)
এমআইভিকে

5
যারা রেল ব্যবহার করেন তাদের জন্য আমাকে pg_hba.conf সেট করতে হয়েছিল এবং 'পরিচয়' পরিবর্তন করে 'পাসওয়ার্ড' করতে হয়েছিল। এটি আস্থায় পরিবর্তন করা কার্যকর হয়নি।
আবে পেট্রিলো

412

নিম্নলিখিত পদক্ষেপগুলি উবুন্টু 12.04 এ 9.1 পোস্টগ্রিজের একটি নতুন ইনস্টলের জন্য কাজ করে। (উবুন্টু ১৪.০৪-তেও পোস্টগ্রিজ 9.3.9 এর জন্য কাজ করেছে।)

ডিফল্টরূপে, পোস্টগ্রাগগুলি 'পোস্টগ্রিস' নামে একটি ব্যবহারকারী তৈরি করে। আমরা তার হিসাবে লগ ইন করি এবং তাকে একটি পাসওয়ার্ড দেই।

$ sudo -u postgres psql
\password
Enter password: ...
...

psqlটাইপ করে \qবা লগআউট করুন ctrl+d। তারপরে আমরা 'পোস্টগ্রিস' হিসাবে সংযুক্ত হই। -h localhostঅংশ গুরুত্বপূর্ণ : এটা বলে psql, এবং একটি পিয়ার সংযোগ (যা পাসওয়ার্ড সম্পর্কে গ্রাহ্য না করে) দ্বারা ক্লায়েন্ট যে আমরা একটি TCP সংযোগ (যা পাসওয়ার্ড প্রমাণীকরণ ব্যবহার করতে কনফিগার করা) ব্যবহার করে সংযোগ করতে ইচ্ছুক।

$ psql -U postgres -h localhost

13
আপনি যদি সেট করে থাকেন PGHOST=localhostতবে -hপ্রতিবার বিকল্পটি নির্দিষ্ট করার দরকার নেই । এটি pg_*যেমন অন্যান্য কমান্ডগুলির সাথেও কাজ করে pg_dump
সমীর

1
এটি এখানে নথিভুক্ত করেছে: help.ubuntu.com/12.04/serverguide/postgresql.html
হেন্দ্র উজিয়া

2
পোস্টগ্রিএসকিউএল সহ ডেবিয়ানে একটি মিডিয়াউইকি ইনস্টল সক্ষম করার জন্য এটি দরকার ছিল।
mivk

2 বছর পরে, এবং আমার একটি ম্যাকের উপরও এটি করা দরকার।
মানব

1
খারাপ কারণ এখানে সুরক্ষা সমস্যা রয়েছে, এখানে দেখুন: সার্ভারফল্ট
প্রশ্ন

161

ফাইলটি সম্পাদনা করুন /etc/postgresql/8.4/main/pg_hba.confএবং প্রতিস্থাপন করুন identবা peerউভয় দ্বারা md5বা trustআপনি নিজের কম্পিউটারে পাসওয়ার্ড চাইতে চান কিনা তার উপর নির্ভর করে। তারপরে কনফিগারেশন ফাইলটি পুনরায় লোড করুন:

/etc/init.d/postgresql reload

4
একটি কমান্ড পোস্টগ্র্যাস্কেল পুনঃসূচনা: /etc/init.d/postgresql পুনঃসূচনা
টাইলার লং

14
আপনার পুনরায় লোড করা দরকার হলে কেন পুনরায় চালু করবেন?
ফ্রাঙ্ক হিকেন্স

এই ক্ষেত্রে: "/etc/init.d/postgresql-8.4 পুনরায় লোড করুন"
শায়টাক

1
এই এখানে আমার জন্য কাজ। পিয়ার থেকে এমডি 5 এ পরিবর্তন যথেষ্ট ছিল।
জোনাটাস সিডি

1
ঠিক আছে, আমি একটি PostgreSQL noob, কিন্তু আমি রিপোর্ট করতে হবে যে শুধুমাত্র restartনা আমার জন্য কাজ, reload--- পরিবর্তন পরে /etc/postgresql/9.5/main/pg_hba.conf(পরিবর্তন peerকরার জন্য trust)।
মাইক ও'কনোর

91

আপনি এই ত্রুটিটি পাচ্ছেন কারণ আপনি ক্লায়েন্ট প্রমাণীকরণ ব্যর্থ হয়েছেন। ত্রুটি বার্তার উপর ভিত্তি করে, আপনার সম্ভবত ডিফল্ট পোস্টগ্রিস কনফিগারেশন রয়েছে, যা ক্লায়েন্টের প্রমাণীকরণ পদ্ধতিটিকে সমস্ত পোস্টগ্রাইএসকিউএল সংযোগের জন্য "আইডেন্ট" এ সেট করে।

আপনি স্পষ্টভাবে অধ্যায় পড়া উচিত 19.1 ক্লায়েন্ট প্রমাণীকরণ মধ্যে পোস্টগ্রি ম্যানুয়াল ভাল প্রমাণীকরণের (ইন প্রতিটি রেকর্ডের জন্য উপলব্ধ সেটিং বুঝতে pg_hba.conf ), কিন্তু এখানে (থেকে সমস্যা হচ্ছে সেটির সাহায্যের প্রাসঙ্গিক স্নিপেট হয় সংস্করণ 9.5 ম্যানুয়াল ):

আস্থা

নিঃশর্ত সংযোগের অনুমতি দিন। এই পদ্ধতিটি যে কেউ পোস্টগ্রাইএসকিউএল ডাটাবেস সার্ভারের সাথে সংযোগ করতে পারে তাদের যে কোনও পোস্টগ্রিজ এসকিউএল ব্যবহারকারী হিসাবে লগইন করতে পারে, কোনও পাসওয়ার্ড বা অন্য কোনও প্রমাণীকরণের প্রয়োজন ছাড়াই। বিশদ 19.3.1 দেখুন।

প্রত্যাখ্যান

নিঃশর্ত সংযোগ প্রত্যাখ্যান করুন। এটি কোনও গ্রুপের নির্দিষ্ট হোস্টগুলিকে "ফিল্টার আউট" করার জন্য দরকারী, উদাহরণস্বরূপ একটি প্রত্যাখ্যানযোগ্য রেখা নির্দিষ্ট হোস্টকে সংযোগ স্থাপন থেকে আটকাতে পারে, যখন একটি পরবর্তী লাইন একটি নির্দিষ্ট নেটওয়ার্কের অবশিষ্ট হোস্টগুলিকে সংযোগ করার অনুমতি দেয়।

MD5

প্রমাণীকরণের জন্য ক্লায়েন্টকে ডাবল-এমডি 5-হ্যাশ পাসওয়ার্ড সরবরাহ করার প্রয়োজন। বিশদ জন্য বিভাগ 19.3.2 দেখুন।

পাসওয়ার্ড

প্রমাণীকরণের জন্য ক্লায়েন্টকে একটি এনক্রিপ্ট করা পাসওয়ার্ড সরবরাহ করার প্রয়োজন। যেহেতু নেটওয়ার্কের মাধ্যমে পাসওয়ার্ডটি স্পষ্ট পাঠ্যে প্রেরণ করা হয়েছে, এটি অবিশ্বস্ত নেটওয়ার্কগুলিতে ব্যবহার করা উচিত নয়। বিশদ 19.3.2 দেখুন।

GSS

ব্যবহারকারীকে প্রমাণীকরণ করতে GSSAPI ব্যবহার করুন। এটি কেবলমাত্র টিসিপি / আইপি সংযোগের জন্য উপলব্ধ। বিশদ 19.3.3 দেখুন।

sspi

ব্যবহারকারীর অনুমোদনের জন্য এসএসপিআই ব্যবহার করুন। এটি কেবল উইন্ডোজে উপলব্ধ। বিশদ 19.3.4 দেখুন।

ident

ক্লায়েন্টের পরিচয় সার্ভারের সাথে যোগাযোগ করে ক্লায়েন্টের অপারেটিং সিস্টেম ব্যবহারকারীর নাম পান এবং এটি অনুরোধ করা ডাটাবেসের ব্যবহারকারীর নামের সাথে মেলে কিনা তা পরীক্ষা করে দেখুন। সনাক্তকারী প্রমাণীকরণ কেবলমাত্র TCP / IP সংযোগগুলিতে ব্যবহার করা যেতে পারে। স্থানীয় সংযোগগুলির জন্য নির্দিষ্ট করা হলে, পরিবর্তে পিয়ার প্রমাণীকরণ ব্যবহার করা হবে। বিশদ 19.3.5 দেখুন।

সমকক্ষ ব্যক্তি

অপারেটিং সিস্টেম থেকে ক্লায়েন্টের অপারেটিং সিস্টেমের ব্যবহারকারীর নাম পান এবং এটি অনুরোধ করা ডাটাবেসের ব্যবহারকারীর নামের সাথে মেলে কিনা তা পরীক্ষা করে দেখুন। এটি কেবল স্থানীয় সংযোগের জন্য উপলব্ধ। বিশদ জন্য বিভাগ 19.3.6 দেখুন।

LDAP

একটি এলডিএপি সার্ভার ব্যবহার করে প্রমাণীকরণ করুন। বিশদের জন্য বিভাগ 19.3.7 দেখুন।

ব্যাসার্ধ

একটি রেডিয়াস সার্ভার ব্যবহার করে প্রমাণীকরণ করুন। বিশদ 19.3.8 দেখুন।

যা নিশ্চিতভাবে ঘটবে

এসএসএল ক্লায়েন্ট শংসাপত্র ব্যবহার করে প্রমাণীকরণ করুন। বিশদ 19.3.9 দেখুন বিশদ।

পাম

অপারেটিং সিস্টেম দ্বারা সরবরাহিত প্লাগেবল অথেনটিকেশন মডিউলগুলি (পিএএম) পরিষেবা ব্যবহার করে প্রমাণীকরণ করুন। বিশদ 19.3.10 দেখুন।

সুতরাং ... আপনি যে সমস্যার মুখোমুখি হচ্ছেন তা সমাধানের জন্য আপনি নিম্নলিখিতগুলির একটি করতে পারেন:

  1. প্রমাণীকরণ পদ্ধতি (গুলি) আপনার সংজ্ঞায়িত পরিবর্তন pg_hba.conf করার জন্য ফাইল trust, md5অথবা password(আপনার সুরক্ষা ও সরলতা চাহিদার উপর নির্ভর করে) স্থানীয় সংযোগ রেকর্ড তুমি সেখানে সংজ্ঞায়িত করেছি। '

  2. pg_ident.confআপনার অপারেটিং সিস্টেম ব্যবহারকারীদের পোস্টগ্রেএসকিউএল ব্যবহারকারীদের কাছে ম্যাপ করার জন্য আপডেট করুন এবং আপনার প্রয়োজনের উপর নির্ভর করে তাদের সম্পর্কিত অ্যাক্সেসের সুযোগগুলি দিন।

  3. আইডিএএনটি সেটিংসকে একা ছেড়ে যান এবং প্রতিটি অপারেটিং সিস্টেম ব্যবহারকারীর জন্য আপনার ডাটাবেসে ব্যবহারকারী তৈরি করুন যা আপনি অ্যাক্সেস দিতে চান। যদি কোনও ব্যবহারকারী ওএস দ্বারা ইতিমধ্যে প্রমাণীকৃত এবং লগ ইন করা থাকে তবে পোস্টগ্রিসকিউএলএর জন্য আর প্রমাণীকরণের প্রয়োজন হবে না এবং এটি ব্যবহারকারীর অ্যাক্সেস মঞ্জুরি দেবে ডেটাবেস-এ যে কোনও সুযোগ-সুবিধা (ভূমিকা) দেওয়া হয়েছে তার ভিত্তিতে। এটি ডিফল্ট কনফিগারেশন।

নোট: অবস্থান pg_hba.confএবং pg_ident.confওএস নির্ভরশীল।


4
আমার জন্য, এটি সেরা উত্তর। আপনি যখন এই সমস্ত অপশনটি জানেন তখন আপনি সহজেই কনফটিটি টুইঙ্ক করতে পারেন। এবং বিশেষত যখন আপনি দেব মেশিনে থাকেন তখন আপনার সময় নষ্ট না করার জন্য সমস্ত প্রবেশের জন্য কেবল 'পরিচয়' সেট করতে পারেন। ধন্যবাদ
ভেঙ্কাটারেডি

1
এটি আমার জন্যও সহায়ক ছিল। আমার ক্ষেত্রে pg_hba.conf ফাইলটি পিয়ারে সেট করা হয়েছিল, আমি এটি পাসওয়ার্ডে পরিবর্তন করেছি। নোট করুন যে একটি ভ্যানিলা ইনস্টল থেকে আমাকে পোস্টগ্রিজ ব্যবহারকারীর জন্য একটি পাসওয়ার্ডও সেট করতে হয়েছিল, sudo su - postgres psql, \ পাসওয়ার্ড একটি পাসওয়ার্ড সেট করে। তারপরে পিডিগাডমিন 3 থেকে ইউজারনেম পোস্টগ্রিজ এবং আপনার সেট করা পাসওয়ার্ড দিয়ে ডিফল্ট সংযোগ চালু করুন।
এডেনকরবিন

1
আর সেই ফাইলটি কোথায় পাওয়া গেল? মঞ্জুর, আপনার একটি তালিকা তৈরি করতে হতে পারে, কারণ সংস্করণগুলির মধ্যে কোনও ধারাবাহিকতা নেই বলে মনে হচ্ছে। আমার ধারণা আমি '/' তে সন্ধান করব run
জোসেফকে

1
উবুন্টু -16.04 এ এটি /etc/postgresql/9.6/main/pg_hba.conf
মাইক ও'কনোর

1
যে কেউ পিএসকিএল-তে নতুন, এটি একটি বিশাল সহায়তা এবং এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি বিভিন্ন অনুমোদনের পদ্ধতিগুলি পূরণ করে
ভাইরনাচ

45

কেবলমাত্র -h localhostকাজটি করার জন্য আমার বিট যুক্ত করা ছিল


আমরা জানি যে এটি কেন এটি সংশোধন করে?
মাইকেল পেল

postgresql এর ডিফল্ট যুক্তিসঙ্গতভাবে সেট করা হয় না। তারা হয়তো এখনই এটি ঠিক করে দিয়েছে, জানি না। স্পষ্টতই ডিফল্ট ইউআরএলটি this_computer = 'http://localhost'
হ'ল

15

আপনি পরিবেশ পরিবর্তনশীল সেট করতে পারেন PGHOST=localhost:

$ psql -U db_user db_name
psql: FATAL:  Peer authentication failed for user "db_user"

$ export PGHOST=localhost
$ psql -U db_user db_name

Password for user mfonline:

15

যদি উপরের

কোনওটি আপনার পক্ষে কাজ করে না : আমি বেশ কয়েকটি পোস্টগ্র্যাস ইনস্টলেশন করেছি, তবে একটি রেডহ্যাট 6.৫ সিস্টেমে পোস্টম্রেসড হয়ে গিয়েছিলাম (পোস্টগ্রিস ৯.৩ ইনস্টল করা)। অ্যারন উপরে দেখায় আমার টিপিকাল hba.conf কনফিগারেশনটি কার্যকর হয়নি। দেখা গেল যে আমার সিস্টেমটি আইপিভি 6 ব্যবহার করছে এবং আইপিভি 4 কনফিগারেশন উপেক্ষা করছে। লাইন যুক্ত করা হচ্ছে:

host    all             all             ::1/128                 password

আমাকে সফলভাবে লগইন করার অনুমতি দিয়েছে।


ধন্যবাদ ইথান আমি ফেডোরা 20 চালাচ্ছি এবং আমি ওপি-র মত একই সমস্যার মুখোমুখি হয়েছি। আইপিভি 4 এবং আইপিভি 6 পাসওয়ার্ডে পরিবর্তন করার পরে। সংযোগটি সফল হয়েছিল।
ইবনে সা Saeed

1
তোমাকে অসংখ্য ধন্যবাদ. কোনও প্রোগ্রামিং বা সিস্টেমের সমস্যার মুখোমুখি হওয়ার সময় আমি অন্য পোস্টগুলি থেকে বহুবার উপকৃত হয়েছি। খুশি আমি কিছুটা দিতে পারলাম।
ইথান ব্রাউন

1
এটি ফেডোরার 32-তে আমার জীবন বাঁচিয়েছে!
রামি

12

উপরের সমস্ত উত্তরগুলির মধ্যে আমার পক্ষে কোনও কিছুই কার্যকর হয়নি। আমি নিজেই ডাটাবেসে ব্যবহারকারীদের পাসওয়ার্ড পরিবর্তন করতে হয়েছিল এবং এটি হঠাৎ করে কাজ করে।

psql -U postgres -d postgres -c "alter user produser with password 'produser';"

আমি নিম্নলিখিত সেটিংস ব্যবহার করেছি:

pg_hba.conf

local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            password  
# IPv6 local connections:
host    all             all             ::1/128                 password

নিম্নলিখিত কমান্ডের জন্য শেষ পর্যন্ত সংযোগটি সফল:

psql -U produser -d dbname -h localhost -W 

এটি অনুসরণ করে আমাকে এখানে সাহায্য করেছে, জোসেফ। বিশেষত, আমাকে এটি পরীক্ষা করতে সহায়তা করার জন্য শেষে সংযোগ কমান্ড। এছাড়াও, কেউ যদি ভাবতে থাকে তবে আমি পোস্টগ্রেক্কল সার্ভিসটি পুনরায় চালু করতে চাই (তবে আমি এটি পেয়েছি যে এটি অন্তর্ভুক্ত)। অনেক প্রশংসা!
হার্লিন

10

আমি আবিষ্কার করেছি যে আমাকে একটি পরিচয় সার্ভার ইনস্টল করতে হয়েছে, যা পোর্ট 113 এ শোনে।

sudo apt-get install pidentd
sudo service postgresql restart

এবং তারপর পরিচয় কাজ।


10

হুম ...

আপনি যদি pgAdminIII- এ ব্যবহারকারীর নাম এবং পাসওয়ার্ডের সাথে সংযোগ করতে পারেন তবে আপনি সংযোগ করতে পারবেন না psql তবে এই দুটি প্রোগ্রাম সম্ভবত ডাটাবেসের সাথে আলাদাভাবে সংযুক্ত হচ্ছে।

[আপনি যদি বিভিন্ন ডাটাবেসের সাথে সংযোগ স্থাপন করেন তবে প্রথমে একই ডাটাবেসের সাথে সংযোগ করার চেষ্টা করুন। নিচে দেখ.]

পোস্টগ্র্যাস এসকিউএল থেকে : ডকুমেন্টেশন: 9.3: পিএসকিএল :

আপনি হোস্টের নাম বাদ দিলে, পিএসকিএল ইউনিক্স-ডোমেন সকেটের মাধ্যমে স্থানীয় হোস্টের একটি সার্ভারের সাথে, বা টিসিপি / আইপি-র মাধ্যমে ইউনিক্স-ডোমেন সকেট নেই এমন মেশিনে লোকালহোস্টের সাথে সংযুক্ত হবে।

তোমার মত কিছু না চালিয়ে থাকেন psql ... -h host_name ..., এবং আপনি উবুন্টু চালাচ্ছেন, psqlএকটি ইউনিক্স-ডোমেন সকেট মাধ্যমে সংযোগ করা উচিত, যাতে পোস্টগ্রি সম্ভবত পাসওয়ার্ড প্রমাণীকরণ পদ্ধতি এক করার অনুমতি কনফিগার করা নেই postgres ব্যবহারকারী।

আপনি এটি চালিয়ে পরীক্ষা করতে পারেন:

sudo -u postgres psql

যদি উপরের কাজগুলি করে তবে আপনার সার্ভার সম্ভবত পোস্টগ্রিজ ব্যবহারকারী দ্বারা স্থানীয় সংযোগের জন্য পিয়ার প্রমাণীকরণ ব্যবহার করার জন্য কনফিগার করা হয়েছে , যেমন আপনি পোস্টগ্রিজ হয়েছেন তা নিশ্চিত করতে আপনার ব্যবহারকারীর নামের জন্য ওএসকে জিজ্ঞাসা করুন

সুতরাং এটি সম্ভবত আপনার pg_hba.conf ফাইল

ফাইলটির পুরো পথটি /etc/postgresql/9.3/main/pg_hba.conf এর মতো কিছু হবে । আপনি এটি দেখতে পারেন, যেমন ।sudo cat /etc/postgresql/9.3/main/pg_hba.conf | more

আপনি যদি আপনার psqlকমান্ডটিতে হোস্টের নাম বাদ দিচ্ছেন , আপনি যদি আপনার pg_hba.conf ফাইলটিতে নিম্নলিখিত এন্ট্রিটি যুক্ত করেন তবে আপনার সংযোগ করতে সক্ষম হবেন :

# Connection type   Database   User       IP addresses   Method
local               all        postgres                  md5

[ Pg_hba.conf ফাইলটিতে মন্তব্য করা লাইনগুলি শুরু হয়# ]

আপনি যদি হয় আপনার মধ্যে হোস্ট নাম সহ psqlকমান্ড, এই এন্ট্রি যোগ পরিবর্তে:

# Connection type   Database   User       IP addresses   Method
host                all        postgres   127.0.0.1/32   md5

আপনার সংযোগের মাধ্যমে অন্য কোনও এন্ট্রি মিলে যাওয়ার আগে আপনাকে এন্ট্রি রাখা দরকার psql। এটি কোথায় রাখবেন তা নিয়ে যদি সন্দেহ হয় তবে এটি প্রথম অন-মন্তব্য করা লাইনের আগে রেখে দিন।

Pg_hba.conf সম্পর্কে আরও

পোস্টগ্রেএসকিউএল থেকে : ডকুমেন্টেশন: 9.3: পিজি_এইচবিএ কনফ ফাইল [সাহসী জোর আমার]:

প্রমাণীকরণ সম্পাদনের জন্য কোনও মিলের সংযোগের ধরণ , ক্লায়েন্টের ঠিকানা , অনুরোধ করা ডাটাবেস এবং ব্যবহারকারীর নাম সহ প্রথম রেকর্ড ব্যবহৃত হয়। কোনও "ফল-থ্রু" বা "ব্যাকআপ" নেই: যদি একটি রেকর্ড চয়ন করা হয় এবং প্রমাণীকরণ ব্যর্থ হয় তবে পরবর্তী রেকর্ডগুলি বিবেচনা করা হয় না। কোনও রেকর্ডের মিল না থাকলে অ্যাক্সেস অস্বীকার করা হয়।

নোট করুন যে প্রমাণীকরণ পদ্ধতিতে রেকর্ডগুলি মেলে না । সুতরাং, যদি আপনার pg_hba.conf ফাইলটিতে নিম্নলিখিত প্রবেশ থাকে:

# Connection type   Database   User       IP addresses   Method
local               all        postgres                  peer

তারপরে আপনি এর মাধ্যমে সংযোগ করতে সক্ষম হবেন না :

psql -u postgres

পূর্ববর্তী এন্ট্রিগুলির উপরে এই এন্ট্রিগুলির মধ্যে একটিও আপনার pg_hba.conf ফাইলটিতে না থাকলে:

# Connection type   Database   User       IP addresses   Method
local               all        postgres                  md5
local               all        postgres                  password   # Unencrypted!
local               all        all                       md5
local               all        all                       password   # Unencrypted!

2
গেমটি দেরীতে, তবে, গুরুত্ব সহকারে, জিনিসগুলি সঠিকভাবে ব্যাখ্যা করার চেষ্টা করার জন্য ধন্যবাদ যাতে আমি বুঝতে পারি!
জেফ্রি 'জেফ' লিম

10

আমার ক্ষেত্রে, সমাধান এখানে: (যারা সংশ্লিষ্ট তাদের জন্য) পোস্টগ্রিতে লগইন করুন:

sudo -i -u postgres
psql
ALTER USER postgres WITH PASSWORD 'postgres'; # type your password here

শুভেচ্ছা


7

সমস্যাটি এখনও আপনার pg_hba.conf ফাইল। এই লাইন: আপনি এই ফাইলটি / etc / postgres / রূপ / প্রধানতে খুঁজে পেতে পারেন

local   all             postgres                                peer
Should be

local   all             postgres                                md5

এগুলি প্রমাণীকরণ পদ্ধতিতে অফিসিয়াল পোস্টগ্রেএসকিউএল ডক্স অনুসারে উভয় বিকল্পের সংক্ষিপ্ত বিবরণ।

পিয়ারের প্রমাণীকরণ

পিয়ার প্রমাণীকরণ পদ্ধতিটি কার্নেলের কাছ থেকে ক্লায়েন্টের অপারেটিং সিস্টেমের ব্যবহারকারীর নাম গ্রহণ করে এবং এটি অনুমোদিত ডাটাবেস ব্যবহারকারী নাম হিসাবে ব্যবহার করে (userচ্ছিক ব্যবহারকারী নাম ম্যাপিং সহ) কাজ করে। এই পদ্ধতিটি কেবল স্থানীয় সংযোগগুলিতে সমর্থিত।

পাসওয়ার্ড প্রমাণীকরণ

পাসওয়ার্ড ভিত্তিক প্রমাণীকরণ পদ্ধতিগুলি এমডি 5 এবং পাসওয়ার্ড। এই পদ্ধতিগুলি যেমন সংযোগ জুড়ে পাসওয়ার্ডটি প্রেরণ করা হয়, যথাক্রমে এমডি 5-হ্যাশড এবং ক্লিয়ার টেক্সট ব্যতীত একইভাবে কাজ করে।

আপনি যদি পাসওয়ার্ড "স্নিফিং" আক্রমণ সম্পর্কে উদ্বিগ্ন হন তবে এমডি 5 অগ্রাধিকার দেওয়া হয়। সম্ভব হলে সরল পাসওয়ার্ডটি সর্বদা এড়ানো উচিত। তবে, md5 db_user_namespace বৈশিষ্ট্যটি ব্যবহার করা যাবে না। যদি সংযোগটি এসএসএল এনক্রিপশন দ্বারা সুরক্ষিত থাকে তবে পাসওয়ার্ডটি নিরাপদে ব্যবহার করা যেতে পারে (এসএসএল শংসাপত্রের প্রমাণীকরণ যদি এসএসএল ব্যবহারের উপর নির্ভর করে তবে একটি ভাল পছন্দ হতে পারে)।

এই ফাইলটি পরিবর্তন করার পরে, আপনার পোস্টগ্রিএসকিউএল সার্ভারটি পুনরায় আরম্ভ করতে ভুলবেন না। আপনি যদি লিনাক্সে থাকেন তবে তা হবেsudo service postgresql restart.


7

Fedora26 এবং postgres9.6 এর জন্য

প্রথমে ব্যবহারকারীর রুট হিসাবে লগ করুন তারপরে নিম্নলিখিত কমান্ডগুলি দিয়ে পিএসকিএল-এ প্রবেশ করুন

$ su postgres  

তারপর

$ psql

মধ্যে psqlhba_file এটি অবস্থান ==> উপায়েpg_hba.conf

postgres=# show hba_file ; 
 hba_file  
--------------------------------------   
 /etc/postgresql/9.6/main/pg_hba.conf  
(1 row)  

ফাইল pg_hba.confপরিবর্তন ব্যবহারকারীদের এই অ্যাক্সেস

host all all 127.0.0.1/32 md5

6

ব্যাশ শেলের ম্যাক ওএসএক্স-এ পোস্টগ্র্রেএসকিউএল 9.3-এ আমার সমাধানটি হ'ল sudoডেটা ফোল্ডারে যেতে হবে এবং তারপরে pg_hba.confসমস্ত ব্যবহারকারীদের আস্থা রাখতে এবং লগ ইন করতে সক্ষম হওয়ার জন্য ফাইলটিতে প্রয়োজনীয় লাইন যুক্ত করতে হবে I এটি আমিই করেছি :

# in bash_profile edit PGDATA environmental variable
open ~/.bash_profile

# append this line to bash_profile
export PGDATA="/Library/PostgreSQL/9.3/data"

# reload bash_profile
source ~/.bash_profile

# open pg_hba.conf in vim
sudo vi /Library/PostgreSQL/9.3/data/pg_hba.conf

# append these two lines to the end of the pg_hba.conf file
local   all   all                  trust
host    all   all   127.0.0.1/32   trust

# can now login as user in bash
psql -d <db_name> -U <user_name> -W

1
এটি ডেভলপমেন্ট সার্ভারের জন্য ঠিক আছে, তবে আমি একটি উত্পাদন পরিবেশের জন্য এটির পরামর্শ দেব না কারণ এই সেটিংসের সাথে ডাটাবেসের সাথে সংযোগ স্থাপনের জন্য আপনার আর পাসওয়ার্ডের প্রয়োজন নেই।
মাইকেল 17


4

আমি স্বীকার করতে আগ্রহী এই ত্রুটিটি সমাধান করার জন্য আমি আরও বেশি সময় ব্যয় করেছি।

Pg_hba.conf- এ প্রমাণীকরণের ক্রমটি আপনার ক্ষেত্রে প্রাসঙ্গিক relevant ডিফল্ট কনফিগারেশন ফাইলটিতে একটি ভ্যানিলা ইনস্টলের বিভিন্ন লাইন থাকে। এই ডিফল্টগুলি প্রমাণীকরণে ব্যর্থ হওয়ার ফলে আপনার প্রমাণীকরণের চেষ্টার শর্তগুলির সাথে মেলে। .Conf ফাইলের শেষে যুক্ত হওয়া অতিরিক্ত কনফিগারেশন নির্বিশেষে এটি ব্যর্থ হয়।

কনফিগারেশনের কোন লাইনটি ব্যবহার করা হচ্ছে তা পরীক্ষা করতে বার্তাগুলির জন্য ডিফল্ট লগ ফাইলটি দেখতে ভুলবেন না। আপনি এরকম কিছু দেখতে পাবেন

LOG:  could not connect to Ident server at address "127.0.0.1", port 113: Connection refused
FATAL:  Ident authentication failed for user "acme" 
DETAIL:  Connection matched pg_hba.conf line 82: "host     all             all             127.0.0.1/32            ident"

দেখা যাচ্ছে যে এই ডিফল্ট লাইনটি প্রত্যাখ্যান করে।

host    all             all             127.0.0.1/32            ident

এটি মন্তব্য করার চেষ্টা করুন।


3

এর চারপাশে একটি হ্যাক হ'ল pg_hba.conf সম্পাদনা করা

sudo vi /etc/postgresql/9.3/main/pg_hba.conf

অস্থায়ীভাবে

# Database administrative login by Unix domain socket
local   all             postgres                                   trust

এই মুহুর্তে আপনার কাজ শেষ হয়েছে। সুরক্ষার জন্য, তারপর যান এবং

sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';

তারপরে ফিরে যান এবং pg_hba.conf এ আবার সেট করুন

# Database administrative login by Unix domain socket
local   all             postgres                                   md5

1

আমি একই সমস্যা ছিল এবং আমি এটি সংশোধন করা হয়েছে pg_hba.conf যখন সমস্ত সরানোর ident এমনকি IP6 ঠিকানার জন্য পদ্ধতি (সত্ত্বেও আমি মেশিনে শুধুমাত্র IP4 থাকে)।

host all all 127.0.0.1/32 password
host all all ::1/128 password
#for pgAdmin running at local network
host all all 192.168.0.0/24 md5

0

এটি অনুসরণ করার পরে আমার একই ইস্যু হয়েছিল: উবুন্টু 12.04-এ রেল বিকাশের জন্য পোস্টগ্রিস এসকিউএল সেটআপ

আমি অন্যান্য উত্তরগুলি চেষ্টা করেছিলাম তবে আমাকে যা করতে হয়েছিল তা হ'ল: "কনফিগারেশন / ডাটাবেস.আইএমএল"

development:
  adapter: postgresql
  encoding: unicode
  database: (appname)_development
  pool: 5
  username: (username you granted appname database priviledges to)
  password:

0

আপনি যদি এটি CentOS এ ব্যবহার করে থাকেন তবে উপরের সমাধানগুলি করার পরে আপনার পোস্টগ্রিজ পুনরায় লোড করতে হবে:

systemctl restart postgresql-9.3.service

এটি এখন ঠিকpostgresql
নীল চৌধুরী

@ নীলচৌধুরী পোস্টগ্র্যাস্কল পরিষেবাটি এখনও কমপক্ষে লিনাক্স সিস্টেমে পরিষেবার নামে সংস্করণ পেয়েছে। দেখতে এই আদেশটি চালানsystemctl status | grep postgres
Ikrom

0

এই সমস্যাটি সমাধান করার জন্য আমাকে পিডিএডমিন পুনরায় ইনস্টল করতে হয়েছিল

brew cask reinstall pgadmin4

0

উইন্ডোজের জন্য যদি আপনি পিবি_গবা.কোনফ সম্পাদনা করতে না চান অর্থাৎ পদ্ধতিটি এমডি 5 (ডিফল্ট) এ রেখে যান, পিগ্যাডমিনে ক্যোয়ারী টুলটিতে এই ক্যোয়ারীটি চালিয়ে একটি নতুন ব্যবহারকারী তৈরি করুনPGadmin

CREATE USER admin WITH PASSWORD 'secret'

তারপর সেন্টিমিটারে

psql "dbname=Main_db host=127.0.0.1 user=admin password=secret port=5432

যেখানে পোস্টগ্রেস্কল-এ ডিবি নামটি আপনার ডিবি

এখানে চিত্র বর্ণনা লিখুন


-3

এটি আমার পক্ষে কাজ করেছে: http://tecadmin.net/fatal-ident-authentication-failed-for-user-postgres/#

local   all             postgres                                trust
local   all             myapp_usr                               trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
#host    all             all             ::1/128                 trust

1
এটি লোকালহোস্টের যে কোনও ব্যক্তিকে যে কোনও ব্যবহারকারী হিসাবে লগইন করতে দেয়। লিঙ্কের কোথাও এই আচরণের উল্লেখ নেই। এবং হ্যাঁ, ডেবিয়ান তথ্য পৃষ্ঠাগুলিতে একই জিনিস থাকে।
rkapl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.