PostgreSQL 建库、建用户、授权

一、创建用户

  1. 创建普通用户
1
create user <username> with password '<password>';
  1. 创建超级管理员用户
1
create user <username> with password '<password>' superuser createrole createdb;

二、创建数据库

  1. 创建默认数据库
1
create database <dbname>;
  1. 创建数据库指定字符集、用户、表空间
1
create database <dbname> encoding='utf-8' owner=<username> tablespace=<tablespacename>

三、创建表空间

  1. 创建表空间
1
CREATE TABLESPACE <spacename> LOCATION '/home/pg_tablespace/data';
  1. 使用表空间
1
CREATE TABLE <tablename(id int)> TABLESPACE <spacename>

四、用户授权

  • 用户授权类型
权限 中文释义
权限 中文释义
SELECT 查询权限
INSERT 插入权限
UPDATE 更新权限
DELETE 删除权限
TRUNCATE 截断表权限
REFERENCES
TRIGGER 触发器权限
CREATE 创建表权限
CONNECT 登录权限
TEMPORARY
EXECUTE
USAGE

授权语法:

1
GRANT <privilege [, ...]> ON <object [, ...]> TO { PUBLIC \| GROUP group \| username }
权限 中文释义
privilege 值可以为:SELECT,INSERT,UPDATE,DELETE, RULE,ALL。
object 要授予访问权限的对象名称。可能的对象有: table, view,sequence。
PUBLIC 表示所有用户。
GROUP group 为用户组授予权限
username 要授予权限的用户名。PUBLIC 是代表所有用户的简短形式
  1. 赋予用户 某个表 所有权限
1
GRANT ALL ON <tablename> TO <username>;
  1. 赋予用户 某个数据库 所有权限
1
GRANT ALL PRIVILEGES ON DATABASE <dbname> TO <username>;
  1. 增加让主键自增的权限
1
grant all on sequence <tablename_keyname_seq> to <webuser>;
  1. 表授权查询实例
1
grant select on table <tablename> to <username>;
  1. 授权某一个 Shema
1
grant all on schema <schema_name> to <username>;

五、撤销权限

  1. 撤销用户权限
1
REVOKE privileges ON <tablename> FROM <username>;

PostgreSQL 建库、建用户、授权
https://blog.pangcy.cn/2021/09/18/数据库相关/PostgreSQL/PostgreSQL 建库、建用户、授权/
作者
子洋
发布于
2021年9月18日
许可协议