角色与权限

162
2023/08/01 14:02:51

创建角色

语法:

选项 可以是以下的一个或多个:

  • LOGIN:可登录角色
  • PASSWORD '密码':为角色设置密码
  • SUPERUSER:超级用户
  • CREATEDB:可创建数据库
  • CREATEROLE:可创建角色
  • VALID UNTIL '过期时间':设置角色的密码的有效期
  • CONNECTION LIMIT 整数:设置角色可建立的并发连接数

日常应用中,通常会为每个项目/服务创建独立的数据库和角色,基于最小权限原则,在不影响业务的情况,我们只需要 LOGINPASSWORD 选项。假设,我们要为 axum.rs 创建数据库和对应的角色:

分配权限

如果创建数据库的时候指定了 OWNER ,那么该角色自动对该数据库中的所有对象拥有了所有权限,而不需要再单独分配权限。

语法:

GRANT 权限列表 | ALL 
ON  表名
TO  角色名;

权限列表可以是下以值的一个或多个:

  • SELECT:允许执行 SELECT 语句
  • INSERT:允许执行 INSERT 语句
  • UPDATE:允许执行 DELETE 语句
  • TRUNCATE:允许执行 TRUNCATE

如果使用 ALL,则拥有以上所有权限。

回收权限

可以回收某个角色的权限,语法如下:

REVOKE 权限列表 | ALL 
ON  表名
TO  角色名;

选项和分配权限一样。