Postgresql

為什麼使用 postgresql 難以為新數據庫的新角色/使用者授予所有權限和特權?

  • February 23, 2022

使用 mysql 並且相信無數其他數據庫軟體,創建一個新數據庫、創建一個新使用者並授予該使用者擁有並能夠在該數據庫上執行所有操作非常容易

這不是 postgresql 的情況 每次我要在 postgresql 上創建一個新的數據庫和使用者時,想想都是一件很痛苦的事情,因為我知道我會再次遇到頭痛

為什麼 postgresql 在使用和數據庫方面如此痛苦,並允許使用者擁有數據庫以便使用者/角色擁有所有權限

總是遇到類似的錯誤是很瘋狂的

permission denied for table sites

**如何創建一個新數據庫,使用密碼的新使用者並將新數據庫的所有權授予該新使用者,以便使用者/角色可以在該新數據庫上執行所有操作?什麼命令來實現所有這些?**對於PostgreSQL?

謝謝!

PostgreSQL 與其他數據庫(例如 MySQL)之間肯定存在一些差異。當我第一次開始使用 PostgreSQL 時,我發現它比我更熟悉的伺服器有更多的摩擦。然而,一些練習——以及 Evernote 中的許多片段——揭示了這種瘋狂的方法。

也就是說,要回答您的問題,創建數據庫、使用者帳戶和授予所有權限需要 4.5 個步驟。

從命令行:

  1. 創建使用者:
$ sudo -u postgres createuser <username>
  1. 創建數據庫:
$ sudo -u postgres createdb <dbname>

接下來的命令是在 PostgreSQL 中完成的,所以第 2.5 步是登錄伺服器:

$ sudo -u postgres psql
  1. 為使用者分配密碼:
ALTER USER <username> WITH ENCRYPTED PASSWORD '<password>';
  1. 授予數據庫權限:
GRANT ALL PRIVILEGES ON DATABASE <dbname> TO <username> ;

做完了。

你可能已經這樣做了,但是像 Evernote 這樣的筆記系統(或者只是一個帶有文本文件的結構良好的目錄)對於這樣的過程來說是不可或缺的工具,直到肌肉記憶開始 😬

對我來說似乎很簡單。問題在哪裡出現?

create user newuser with password 'newuser';
create database newuser owner newuser;
\c newuser newuser
create table sites (id int);
select * from sites ;

引用自:https://dba.stackexchange.com/questions/292052