PostgreSQL 创建用户、删除用户、用户授权
1. PostgreSQL 创建用户语法
PostgreSQL 完整的创建用户语法如下:
CREATE USER name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
2. PostgreSQL 创建用户示例
(1)创建用户
create user user1;
(2)创建用户并设置密码
create user user2 with password '123456';
(3)创建超级管理员用户
create user user3 with superuser password '123456';
3. PostgreSQL 用户授权
创建的用户需要授权才能访问数据库,权限分为很多种类,常见的授权是将一个数据库的所有权限授予某个用户,当然也可以授予指定权限,比如某个用户只能查询某个数据库中的表,而不能修改表数据。
(1)权限授予到数据库级别,主要包含连接,创建等权限。
grant all on database postgres to user1;
(2)权限授予到 schema 级别,主要包含 select,insert,update,delete,truncate等权限。
grant all on all tables in schema public to user2;
(3)权限授予到表级别,主要包含 select,insert,update,delete,truncate等权限。
grant all on table t1 to user3;
(4)授权只读权限
grant select on all tables in schema public to user4;
(5)权限类型
- all,所有权限
- select,查询表数据权限
- insert,插入表数据权限
- update,更新表数据权限
- delete,删除表数据权限
- truncate,清空表数据权限
- trigger,触发器权限
- references,引用约束权限
- usage,使用权限
- create,创建权限,创建表或者其他对象
- connect,数据库连接权限
- temp/temporary,临时表权限
- execute,执行权限,执行函数,存储过程等
4. PostgreSQL 解除用户授权
使用 revoke 命令解除用户的权限,如下:
revoke all on database postgres from user1; revoke select on all tables in schema public from user2;
5. PostgreSQL 删除用户
删除用户使用 drop user 语法,如果有其他对象依赖该用户,则需要先删除依赖该用户的对象之后才能删除该用户。
drop user user1; 或者 drop user if exists user1;
文章评论
共0条评论