Skip to main content

访问控制

RisingWave 使用基于用户的访问控制来处理身份验证和授权。通过向用户授予或撤销权限,控制用户在不同对象级别上执行的操作。

创建用户时,组织的管理员可以确定系统权限并设置密码。使用 ALTER USER 命令可以修改系统权限和用户名。有关系统权限的详细信息,请查看系统权限

数据库权限可以在后期使用 GRANTREVOKE 命令配置,这些权限可用于管理以下对象级别:

  • 数据库
  • Schema
  • 表格
  • Source
  • 物化视图

有关各对象级别可应用的数据库权限,请查看权限

用户

创建用户

句法:

CREATE USER user_name [ [ WITH ] system_permission [ ... ]['PASSWORD' { password | NULL }] ];

有关系统权限的详细信息,请查看系统权限

创建具有默认权限的用户:

CREATE USER user_name;

创建用户,授予其创建数据库的权限,并为其设置密码:

CREATE USER user001 WITH CREATEDB PASSWORD '1234abcd';

修改用户

使用 ALTER USER 命令更改用户的系统权限、密码或名称。

修改 user001 的密码和初始权限:

ALTER USER user001 WITH NOSUPERUSER CREATEDB PASSWORD '4d2Df1ee5';

user1 重命名为 user001

ALTER USER user1 RENAME TO user001;

权限

下表介绍了 RisingWave 中提供的权限以及可应用的相应对象级别。

权限名称权限内容对象级别
SELECT从关系对象中检索数据。表格、Source、物化视图
INSERT向表格中添加新行。表格
UPDATE修改表格中现有数据。表格
DELETE从表格中删除行。表格
CREATE在数据库内创建新对象。Schema、数据库、表格
CONNECT连接到数据库。数据库

使用 GRANT 命令可以向用户授予权限,使用 REVOKE 命令可以撤销用户权限。有关这两个命令的句法,请查看 GRANTREVOKE

以下语句向用户 user1 授予了物化视图 mv1SELECT 权限,该物化视图位于 db1 数据库的 schema1 Schema 中。user1 能够向其他用户授予 SELECT 权限。

GRANT SELECT
ON MATERIALIZED VIEW mv1 IN SCHEMA db1.schema1
TO user1 WITH GRANT OPTION GRANTED BY user;

向用户 user1 授予 s1 Source 的 SELECTUPDATE 权限:

GRANT SELECT, UPDATE
ON SOURCE s1
TO user1;