Categories: 資料庫

PostgreSQL 新增管理者帳號教學與範例

介紹如何在 PostgreSQL 資料庫中增加管理者帳號,或授予使用者資料庫管理權限。

建立使用者帳號

PostgreSQL 資料庫的管理者帳號實際上就是將普通帳號授予管理者權限,若要列出目前 PostgreSQL 資料庫中所有的使用者,可以執行:

-- 列出既有使用者
SELECT usename FROM pg_user;
 usename
----------
 postgres
(1 row)

若要新增使用者,可以使用 CREATE USER 指令:

-- 建立新使用者 officeguide
CREATE USER officeguide;
CREATE ROLE

建立新的使用者之後,再次確認:

-- 列出既有使用者
SELECT usename FROM pg_user;
   usename
-------------
 postgres
 officeguide
(2 rows)

查詢帳號權限

若需要查詢所有使用者帳號的權限,可以使用 \du 指令:

-- 查詢帳號權限
\du
                                    List of roles
 Role name  |                         Attributes                         | Member of
------------+------------------------------------------------------------+-----------
 officegide |                                                            | {}
 postgres   | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

授予管理者權限

若要授予一般使用者帳號管理者權限,可以使用 ALTER USER 新增 SUPERUSER 權限:

-- 授予 officeguide 帳號管理者權限
ALTER USER officeguide WITH SUPERUSER;
ALTER ROLE

授予管理者權限之後,再次確認:

-- 查詢帳號權限
\du
                                    List of roles
  Role name  |                         Attributes                         | Member of
-------------+------------------------------------------------------------+-----------
 officeguide | Superuser                                                  | {}
 postgres    | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

撤銷帳號權限

若要撤銷指定使用者的管理者權限,可以使用 ALTER USER 配合 NOSUPERUSER

-- 撤銷 officeguide 帳號管理者權限
ALTER USER officeguide WITH NOSUPERUSER;
ALTER ROLE

撤銷管理者權限後,再次確認:

-- 查詢帳號權限
\du
                                    List of roles
  Role name  |                         Attributes                         | Member of
-------------+------------------------------------------------------------+-----------
 officeguide |                                                            | {}
 postgres    | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

刪除使用者帳號

若要刪除指定使用者帳號,可以使用 DROP USER 指令:

-- 刪除 officeguide 帳號
DROP USER officeguide;
DROP ROLE

參考資料:CHARTIO

Share
Published by
Office Guide
Tags: PostgreSQL

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago