用户权限管理与角色体系配置

权限体系概述

KingbaseES 采用与 PostgreSQL 兼容的角色权限模型。"角色"(Role)同时兼具用户和组的功能——具有 LOGIN 属性的角色即为用户,可用于组织角色即为组角色。

用户创建与基本权限

-- 创建普通应用用户(具有登录权限) CREATE USER app_user WITH PASSWORD 'Str0ng@Pass!' NOSUPERUSER NOCREATEDB NOCREATEROLE; -- 创建只读用户 CREATE ROLE readonly_role; GRANT CONNECT ON DATABASE mydb TO readonly_role; GRANT USAGE ON SCHEMA public TO readonly_role; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_role; -- 将角色赋予用户 GRANT readonly_role TO app_user;

行级安全策略(RLS)

对于多租户场景,可启用行级安全策略,确保用户只能访问属于自己的数据行。

-- 启用行级安全 ALTER TABLE orders ENABLE ROW LEVEL SECURITY; -- 创建策略:用户只能看到自己的订单 CREATE POLICY orders_isolation_policy ON orders USING (tenant_id = current_setting('app.current_tenant')::integer); -- 应用代码中设置当前租户 SET app.current_tenant = '42';

权限审计查询

-- 查询某用户拥有的所有角色 SELECT rolname FROM sys_roles WHERE sys_has_role('app_user', rolname, 'member'); -- 查询某表的权限分配情况 SELECT grantee, privilege_type, is_grantable FROM information_schema.role_table_grants WHERE table_name = 'orders'; -- 查询 SUPERUSER 列表(高风险账号) SELECT rolname, rolsuper, rolcreatedb, rolcreaterole FROM sys_roles WHERE rolsuper = true;
!

生产环境应禁止应用程序直连 SYSTEM(超级用户)账号。超级用户不受任何权限限制,一旦凭证泄露将造成严重数据安全事故。

密码策略配置

# 在 kingbase.conf 中启用密码复杂度插件 shared_preload_libraries = 'passwordcheck' passwordcheck.minimum_length = 10 passwordcheck.special_chars = '!@#$%^&*()'
上一篇 [OpenClaw 文档]帮助--环境与调试
下一篇 三层交换机和路由器有什么区别?