PostgreSQL 存取權限

建立 PostgreSQL 資料庫

Darryl Reeves

Industry Assistant Professor, New York University

PostgreSQL 角色與權限

  • 使用者是一種角色
  • 也可定義群組角色
  • 對資料庫物件的存取授予角色
建立 PostgreSQL 資料庫

GRANT 指令

  • 權限由擁有者「授與」給角色
  • 使用 GRANT 指令授與權限
  • 可授與多種權限,例如:
    • SELECT
    • DELETE
    • UPDATE
      GRANT p ON obj TO grantee;
      
建立 PostgreSQL 資料庫

範例:個人理財資料庫

CREATE TABLE account (
    id SERIAL PRIMARY KEY,
    short_name VARCHAR(25),
    provider_id INTEGER REFERENCES provider(id),
    balance DECIMAL
);
CREATE USER fin WITH PASSWORD '38\5)uk1+3&}*Y';
建立 PostgreSQL 資料庫

範例:個人理財資料庫

  • fin 使用者需要存取 account 資料表
  • fin 的存取需求
    • 新增帳戶
    • 更新帳戶
    • 查詢帳戶
  • 超級使用者授與權限
    GRANT INSERT ON account TO fin;
    
GRANT UPDATE ON account TO fin;
GRANT SELECT ON account TO fin;
建立 PostgreSQL 資料庫

資料表修改權限

  • 有些權限無法透過授與取得
  • 修改資料表需要擁有權
ALTER TABLE account ADD COLUMN date_opened DATE;
ALTER TABLE account RENAME COLUMN short_name

TO nickname;
ALTER TABLE account OWNER TO fin;
建立 PostgreSQL 資料庫

一起來練習吧!

建立 PostgreSQL 資料庫

Preparing Video For Download...