পোস্টগ্রিজ এসকিউএল ডিবি তৈরির জন্য ব্যবহারকারীর অনুমতি


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

আমি কীভাবে এই ডিবি তৈরি করব? আমার সুডো রাইটস আছে এবং কুসর আমার নয়।

উত্তর:


44

এটি প্রদর্শিত হয় আপনার একটি ডাটাবেস ব্যবহারকারী নাম আছে kuser, কিন্তু সেই নামটি সহ কোনও সিস্টেম ব্যবহারকারী নেই। এজন্যই আপনি পোস্টগ্রিস প্রম্পট পেতে সক্ষম হন তবে সুডো ব্যর্থ হয়।

এই ব্যবহারকারীর ডেটাবেস তৈরি করতে সক্ষম নয় কারণ অ্যাকাউন্টের 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আমার দিন বাঁচিয়েছে :)
আব্দুলমোমেন عبدالمؤمن
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.