आप दो विधियों का उपयोग कर सकते हैं। दोनों के लिए एक उपयोगकर्ता बनाना आवश्यक है और एक डेटाबेस।
डिफ़ॉल्ट रूप से psql उपयोगकर्ता के समान नाम से डेटाबेस से जुड़ता है। तो यह बनाने के लिए एक परंपरा है कि "उपयोगकर्ता का डेटाबेस" . और उस सम्मेलन को तोड़ने का कोई कारण नहीं है यदि आपके उपयोगकर्ता को केवल एक डेटाबेस की आवश्यकता है। हम mydatabase
. का उपयोग करेंगे उदाहरण डेटाबेस नाम के रूप में।
-
createuser और createb का उपयोग करना , हम डेटाबेस नाम के बारे में स्पष्ट हो सकते हैं,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
आपको शायद इसे पूरी तरह से छोड़ देना चाहिए और इसके बजाय सभी आदेशों को उपयोगकर्ता के नाम पर डिफ़ॉल्ट होने देना चाहिए।
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
SQL व्यवस्थापन आदेशों का उपयोग करना, और TCP पर पासवर्ड से कनेक्ट करना
$ sudo -u postgres psql postgres
और, फिर psql शेल में
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
फिर आप लॉगिन कर सकते हैं,
$ psql -h localhost -d mydatabase -U myuser -p <port>
यदि आप पोर्ट को नहीं जानते हैं, तो आप इसे हमेशा निम्न को चलाकर प्राप्त कर सकते हैं, जैसे कि
postgres
उपयोगकर्ता,SHOW port;
या,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
सिडेनोट:postgres
उपयोगकर्ता
मेरा सुझाव है नहीं postgres
को संशोधित करना उपयोगकर्ता।
- यह आमतौर पर OS से लॉक होता है। किसी को भी ऑपरेटिंग सिस्टम में
postgres
. के रूप में "लॉग इन" नहीं करना चाहिए .postgres
. के रूप में प्रमाणित करने के लिए आपके पास रूट होना चाहिए । - यह आमतौर पर पासवर्ड से सुरक्षित नहीं होता है और होस्ट ऑपरेटिंग सिस्टम को सौंप देता है। यह एक अच्छी बात है . इसका आम तौर पर मतलब होता है
postgres
. के रूप में लॉग इन करना जो SQL सर्वर केSA
. के बराबर PostgreSQL है , आपके पास अंतर्निहित डेटा फ़ाइलों के लिए लेखन-पहुँच होनी चाहिए। और, इसका मतलब है कि आप वैसे भी आम तौर पर कहर बरपा सकते हैं। - इसे अक्षम रखकर, आप एक नामित सुपर-उपयोगकर्ता के माध्यम से एक क्रूर बल के हमले के जोखिम को दूर करते हैं। सुपरयुसर के नाम को छिपाने और अस्पष्ट करने के फायदे हैं।