📜  PostgreSQL – 角色成员(1)

📅  最后修改于: 2023-12-03 15:18:38.899000             🧑  作者: Mango

PostgreSQL – 角色成员

在 PostgreSQL 数据库中,角色是数据库中的一种特殊对象,角色成员则是在角色中创建并授权的用户或其他角色。本文将介绍如何创建和管理 PostgreSQL 中的角色成员。

创建角色成员

创建角色成员的语法如下:

CREATE ROLE role_name LOGIN [PASSWORD 'password'] [OPTIONS]

其中 role_name 为角色名,LOGIN 表示该角色可登录数据库,可选的密码和选项可以设置角色的访问权限。

例如,创建一个名为 admin 的角色成员,并为其指定密码:

CREATE ROLE admin LOGIN PASSWORD '123456';
授权角色成员

在 PostgreSQL 中,使用 GRANT 语句来授权角色成员的访问权限。其语法如下:

GRANT { { SELECT | INSERT | UPDATE | DELETE } [, ...] | ALL [ PRIVILEGES ] }
  ON [ TABLE ] table_name [, ...]
  TO role_name [, ...] [ WITH GRANT OPTION ]

例如,将 admin 角色成员授权在 customers 表上拥有 SELECT 权限:

GRANT SELECT ON customers TO admin;
修改角色成员

修改角色成员的语法如下:

ALTER ROLE role_name [ SET option_name { TO | = } option_value | RESET option_name | DEFAULT ]

例如,修改 admin 角色成员的密码:

ALTER ROLE admin PASSWORD 'new_password';
删除角色成员

删除角色成员的语法如下:

DROP ROLE role_name

例如,删除 admin 角色成员:

DROP ROLE admin;

注意,如果一个角色成员拥有其他对象(如表、视图、函数等)的拥有者或授权者权限,则删除该角色成员会导致这些对象无法被访问或操作,因此在删除角色成员之前应该注意清理相关权限。