PostgreSQL DB बनाने के लिए उपयोगकर्ता अनुमतियाँ


24

मैं उबंटू में काम कर रहा हूं। निम्नलिखित मेरी आज्ञाओं में से एक है।

$ psql -U kuser -d postgres

फिर यह डेटाबेस से जुड़ता है। लेकिन जब मैं कोशिश करता हूं तो टर्मिनल से बाहर निकलता हूं

postgres=> CREATE DATABASE kdb;
ERROR:  permission denied to create database

जब मैं उबंटू में एक समान कमांड की कोशिश करता हूं, तो यह निम्नलिखित देता है

$ sudo -u kuser createdb kdb
sudo: unknown user: kuser
sudo: unable to initialize policy plugin

मैं यह DB कैसे बनाऊँ? मेरे पास सूडो अधिकार हैं और कुसेर मैं नहीं हूं।

जवाबों:


44

ऐसा प्रतीत होता है कि आपके पास एक डेटाबेस उपयोगकर्ता नाम है kuser, लेकिन उस नाम के साथ कोई सिस्टम उपयोगकर्ता नहीं है। यही कारण है कि आप पोस्टग्रेट्स प्रॉम्प्ट प्राप्त करने में सक्षम हैं, लेकिन sudo विफल रहता है।

वह उपयोगकर्ता डेटाबेस बनाने में सक्षम नहीं है क्योंकि खाते की createdbअनुमति नहीं है ।

आप या तो postgresखाते का उपयोग कर उपयोगकर्ता को वह अनुमति दे सकते हैं (उबंटू पर डिफ़ॉल्ट प्रबंधन खाता):

sudo -u postgres psql -c 'alter user kuser with createdb' postgres

या डेटाबेस बनाने के लिए उस प्रबंधन खाते का उपयोग करें और निर्दिष्ट करें कि यह kuserखाते के स्वामित्व में है:

sudo -u postgres createdb -O kuser kdb

यदि वह उपयोगकर्ता अन्य डेटाबेस बनाने नहीं जा रहा है तो मैं बाद वाले विकल्प का उपयोग करने की सलाह दूंगा, जो खाते को दिए गए विशेषाधिकारों को सीमित करने के लिए बेहतर है।


sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgresमेरा दिन बचा लिया :)
AbdulMomen عبدالمنمن
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.