Postgresql में db के लिए यूजर कैसे बनाये? [बन्द है]


199

मैंने अपने CentOS सर्वर पर PostgreSQL 8.4 स्थापित किया है और शेल से रूट उपयोगकर्ता से जुड़ा हुआ है और PostgreSQL शेल तक पहुंच रहा है।

मैंने PostgreSQL में डेटाबेस और उपयोगकर्ता बनाया।

मेरी PHP स्क्रिप्ट से जुड़ने की कोशिश करते समय यह दिखाता है कि प्रमाणीकरण विफल हो गया है।

मैं एक नया उपयोगकर्ता कैसे बना सकता हूं और किसी विशेष DB के लिए उन्हें अनुमति कैसे दे सकता हूं?


वास्तव में त्रुटि संदेश क्या है? क्या आप psqlकमांडलाइन से लॉग इन कर सकते हैं ?
a_horse_with_no_name

24
दुनिया में यह ऑफ-टॉपिक के रूप में कैसे बंद हो गया?
बेन क्रेसी

@BenCreasy हो सकता है क्योंकि यह serverfault.com या सुपरयुसर के लिए अधिक उपयुक्त है?
knocte

2
@knocte तो मुझे लगता है कि आप कह रहे हैं कि यह 6 से कम है, जिसका अपवाद है "जब तक वे सीधे प्रोग्रामिंग या प्रोग्रामिंग टूल शामिल नहीं करते हैं", और मुझे लगता है कि पोस्टग्रेज एक प्रोग्रामिंग टूल के रूप में नहीं गिना जाता है? दिलचस्प है
बेन क्रेसी

जवाबों:


339

CLI से:

$ su - postgres 
$ psql template1
template1=# CREATE USER tester WITH PASSWORD 'test_password';
template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester;
template1=# \q

PHP (जैसा कि स्थानीयहोस्ट पर परीक्षण किया गया है, यह अपेक्षित रूप से काम करता है):

  $connString = 'port=5432 dbname=test_database user=tester password=test_password';
  $connHandler = pg_connect($connString);
  echo 'Connected to '.pg_dbname($connHandler);

14
Ubuntu के लिए यह होना चाहिएsudo su - postgres
Hengjie

57
उबंटू के लिए यह वास्तव में होना चाहिए: सुडो-यू ने psql
मारियो

2
मुझे लगता है कि कमांड्स जारी करने का सबसे पोर्टेबल तरीका होगा:psql -U postgres -c "CREATE ROLE..."
ह्यूगो मोटा

31
बस याद रखें कि आपके द्वारा टाइप किया गया और शेल में चलने वाला सारा सामान आमतौर पर आपके चुने हुए पासवर्ड सहित शेल हिस्ट्री में समाप्त हो जाता है।
15

7
के बीच 'और "कमांड में अंतर नोटिस !
औरिलाबस

42

पासवर्ड के साथ उपयोगकर्ता बनाएं:

http://www.postgresql.org/docs/current/static/sql-createuser.html

CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

फिर एक विशिष्ट डेटाबेस पर उपयोगकर्ता अधिकार प्रदान करें:

http://www.postgresql.org/docs/current/static/sql-grant.html

उदाहरण :

grant all privileges on database db_name to someuser;

1
मैंने पहले ही ऐसा किया है: पासवर्ड 'रावी' के साथ उपयोगकर्ता रवि बनाएँ; डेटाबेस नामांकन पर सभी विशेषाधिकार रवि को देना; लेकिन मैं निम्नलिखित PHP कोड के साथ कनेक्ट नहीं कर सकता: <? Php $ connString = 'host = localhost port = 5432 dbname = nominatim user = ravi password = ravi'; $ पारखी = pg_connect ($ पारखी); इको 'कनेक्टेड टू' .pg_dbname ($ कॉनहैंडलर); ?>

@ डारजी क्रुनाल: पीएचपी त्रुटि क्या है, यह कैसा दिखता है?
विदुल

1
सभी विशेषाधिकार प्रदान करें * ...
अर्पित सिंह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.