博客 PostgreSQL 数据库赋权命令

PostgreSQL 数据库赋权命令

   数栈君   发表于 2023-09-07 10:04  226  0

我平时使用数据库很少会有赋权的操作,但是最近有个场景需要给某个用户设置只能操作哪些数据库和表还有序列。我分享一下我的经验,我用的是 PostgreSQL 数据库。

赋权命令语法

PostgreSQL 中的赋权命令是 GRANT 和 REVOKE。

GRANT 命令用于授予某个用户或用户组对某个对象(如表、视图、函数等)的某种权限(如 SELECT、INSERT、UPDATE、DELETE 等)。

语法:

GRANT privilege [, ...] ON object TO {user | group | PUBLIC} [, ...] [WITH GRANT OPTION];

其中,privilege 是一种权限,object 是一个对象,可以是表、视图、函数等,user 或 group 是要授予权限的用户或用户组,PUBLIC 表示所有用户。

例如,授权用户 zhangsan 对表 test 执行 SELECT 和 INSERT 操作:

GRANT SELECT, INSERT ON test TO zhangsan;

REVOKE 命令用于取消某个用户或用户组对某个对象的某种权限。

语法:

REVOKE privilege [, ...] ON object FROM {user | group | PUBLIC} [, ...] [CASCADE | RESTRICT];

其中,privilege、object、user 或 group、PUBLIC 的含义与 GRANT 命令相同。

例如,取消用户 zhangsan 对表 test 的 SELECT 权限:

REVOKE SELECT ON test FROM zhangsan;

需要注意的是,只有超级用户才有赋权和收回权限的权限。

实战

查看所有用户

SELECT * FROM pg_user;

创建用户并设置密码

CREATE USER zhangsan WITH PASSWORD '123456';

删除用户

DROP USER zhangsan;

创建数据库

CREATE DATABASE test;

删除数据库

DROP DATABASE IF EXISTS test;

移除用户对"test"数据库的权限

REVOKE ALL privileges ON DATABASE "test" FROM zhangsan;

赋予用户操作"test"数据库的权限

GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "test" TO zhangsan;

赋予用户操作"test"数据库的表的权限

GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA PUBLIC
TO zhangsan;

赋予用户操作"test"数据库的序列的权限

序列的权限定义

官方文档中可以看到序列的所有权限为rwU,分别对应SELECT、UPDATE、USAGE;

对于序列,SELECT权限允许使用 currval 函数

对于序列,UPDATE权限允许使用 nextval 和 setval 函数

对于序列,USAGE权限允许使用 currval 和 nextval 函数

如果需要有修改序列的权限可以直接赋权ALL,如下

GRANT SELECT, UPDATE, USAGE ON ALL SEQUENCES IN SCHEME PUBLIC TO zhangsan;

如果只是使用序列不需要修改可以赋权USAGE

GRANT USAGE ON ALL SEQUENCES IN SCHEME PUBLIC TO zhangsan;



免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群