สิทธิ์ของผู้ใช้สำหรับการสร้าง PostgreSQL DB


24

ฉันทำงานกับ Ubuntu ต่อไปนี้เป็นหนึ่งในคำสั่งของฉัน

$ psql -U kuser -d postgres

จากนั้นจะเชื่อมต่อกับฐานข้อมูล แต่จาก terminal postgres เมื่อฉันลอง

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

เมื่อฉันลองคำสั่งที่คล้ายกันใน Ubuntu มันจะให้สิ่งต่อไป

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

ฉันจะสร้างฐานข้อมูลนี้ได้อย่างไร ฉันมีสิทธิ์ sudo และ kuser ไม่ใช่ฉัน

คำตอบ:


44

ดูเหมือนว่าคุณมีชื่อผู้ใช้ฐานข้อมูลkuserแต่ไม่มีผู้ใช้ระบบชื่อนั้น นี่คือเหตุผลที่คุณสามารถรับพรอมต์ postgres ได้ แต่ sudo ล้มเหลว

ผู้ใช้รายนั้นไม่สามารถสร้างฐานข้อมูลได้เนื่องจากบัญชีไม่มีcreatedbสิทธิ์

คุณสามารถให้สิทธิ์แก่ผู้ใช้โดยใช้postgresบัญชี (บัญชีการจัดการเริ่มต้นบน Ubuntu):

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 عبدالمؤمن
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.