访问控制
RisingWave 使用基于用户的访问控制来处理身份验证和授权。通过向用户授予或撤销权限,控制用户在不同对象级别上执行的操作。
创建用户时,组织的管理员可以确定系统权限并设置密码。使用 ALTER USER
命令可以修改系统权限和用户名。有关系统权限的详细信息,请查看系统权限。
数据库权限可以在后期使用 GRANT
和 REVOKE
命令配置,这些权限可用于管理以下对象级别:
- 数据库
- 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
命令可以撤销用户权限。有关这两个命令的句法,请查看 GRANT
和REVOKE
。
以下语句向用户 user1
授予了物化视图 mv1
的 SELECT
权限,该物化视图位于 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 的 SELECT
和 UPDATE
权限:
GRANT SELECT, UPDATE
ON SOURCE s1
TO user1;