PostgreSQL 使用者權限

在這篇教學中,我將解釋如何在 PostgreSQL 中管理使用者和權限。 在 PostgreSQL 中,一切都是圍繞著「角色(role)」的概念建立的。 在 macOS 安裝 PostgreSQL 時,安裝腳本會根據你的 macOS 使用者名稱建立一個角色,並且賦予一組權限。 在 PostgreSQL 中沒有使用者,只有角色。 透過在終端機中執行 psql postgres 命令,你會使用你的 macOS 使用者名稱自動登入 PostgreSQL,從而訪問被建立的角色。 在我的情況下,一個名為 flaviocopes 的角色已被建立,你可以使用 \du 命令來查看: 看到了嗎?我預設擁有以下的角色屬性: Superuser Create role Create DB Replication Bypass RLS 而且,我不屬於任何其他角色(稍後會講到這個)。 建立新角色 可以使用 CREATE ROLE 命令來創建新的角色: CREATE ROLE <role>; 例如: CREATE ROLE testing; 我們創建了一個新的角色,預設帶有 Cannot login 角色屬性。我們新建的使用者將無法登入。 你可以嘗試輸入 \q 命令退出,然後使用 psql postgres -U testing 命令,但你會看到以下錯誤: 為了解決此問題,我們需要在創建時加上 LOGIN 角色屬性: CREATE ROLE <role> WITH LOGIN; 如果我們刪除該角色:...

SQLite 用戶權限

SQLite 用戶權限的快速介紹 我已經談過 MySQL 和 PostgreSQL 中的用戶權限。 關於 SQLite,需要注意的一點是,使用 GRANT 和 REVOKE 來管理權限是不可用的。 這是因為不可能這樣做。 原因是 SQLite 數據庫是包含在單一文件中的獨立性的。 這是由於 SQLite 的架構所致。 任何擁有對 SQLite 文件的訪問權限的東西都可以訪問數據庫中的任何內容。 無法在數據庫層面上提供權限。 如果您的應用程序需要實現用戶權限,您可以在應用程序層面上進行,例如在 API 服務器中,但這取決於您自己。 如果您的應用程序確實需要用戶權限,您也可以重新考慮您的 DBMS 選擇,考慮使用 PostgreSQL 而不是 MySQL/MariaDB。