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 数据库

Passons à la pratique !

创建 PostgreSQL 数据库

Preparing Video For Download...