一位老司机 发表于 2025-4-19 14:00:32

人大金仓KCA | 用户与角色

人大金仓KCA | 用户与角色

一、知识预备
1. 用户和角色
二、具体实施
1. 用户管理-命令行
1.1 创建和修改用户 1.2 修改用户密码 1.3 修改用户的并发连接数 1.4 修改用户的密码有效期
2.用户管理-EasyKStudio
2.1 创建和修改用户 2.2 修改用户密码 2.3 修改用户的并发连接数 2.4 修改用户的密码有效期
3. 角色管理-命令行
3.1 创建角色 3.3 使用角色对用户授权
4.角色管理-EasyKStudio
4.1 创建角色 4.2 使用角色对用户授权 4.3 验证
5. 不同场景下的不同用户权限需求


OS版本:CentOS-7-x86_64-Everything-2009
KES版本:KingbaseES_V008R006C008B0014_Lin64
许可证版本:license_39893_0.dat(开发版)
一、知识预备

1. 用户和角色

用户
数据库用户通常指的是能够访问和操作数据库系统的人员或程序。用户通过认证和授权机制与数据库进行交互、执行查询、插入、更新和删除等。数据库用户代表数据库的使用者,应该为每个使用者创建一个用户,避免多人使用同一个数据库用户。
角色
将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。角色在生产系统中一般被视作用户组。数据库角色是数据库管理系统中的一种权限管理机制,它可以将一组权限分配给角色,然后将角色授予用户。通过使用角色,可以简化权限管理,提高系统安全性,并便于系统维护。
在KingBaseES中,用户和角色没有什么区别,向角色赋予login权限,角色也可以登录数据库
create role创建角色时:默认使用nologin选项 create user创建用户时:默认使用login选项
二、具体实施

1. 用户管理-命令行

1.1 创建和修改用户

: 使用system用户登录test数据库,创建 user01 用户,不指定密码
ksql -Usystem -d test
createuser user01;
\du user01

: 创建user02用户,指定密码为kingbase
createuser user02 password 'kingbase';

: 修改user01用户,授予createdb权限
alteruser user01 CREATEDB;

1.2 修改用户密码

: 用户在没有密码的时候不允许登录
ksql -Uuser01-dtest

: 修改用户的密码,密码不允许使用双引号
alteruser user01 password 'kingbase';

1.3 修改用户的并发连接数

: 限制用户的最大并发连接数
alteruser user01 connection limit1;

1.4 修改用户的密码有效期

: 将用户的密码有效期设置为已过期
alteruser user01 valid until '2023-12-12';

: 将用户的密码有效期设置为永不过期
alteruser user01 valid until 'infinity';

: 删除用户
当用户存在依赖关系时,无法删除用户
drop user user02;

2.用户管理-EasyKStudio

2.1 创建和修改用户

: 创建 user11 用户,指定密码为kingbase




: 修改user11用户,授予createdb权限




2.2 修改用户密码

: 修改用户的密码



2.3 修改用户的并发连接数

: 限制用户的最大并发连接数



2.4 修改用户的密码有效期

: 将用户的密码有效期设置为永不过期



: 删除用户




3. 角色管理-命令行

3.1 创建角色

: 创建角色,角色和用户没什么区别,区别在于角色默认不允许登录
create role role01 password 'kingbase';

3.3 使用角色对用户授权

加入到角色的用户默认会自动继承角色所拥有的全部权限。
: 在之前实验中我们创建了一张student表
select*from student;

: 创建两个测试用户,分别授予inherit和noinherit权限
createuser test01 password 'kingbase' inherit;createuser test02 password 'kingbase' noinherit;
inherit:用户会自动继承所属角色的权限,默认选项 noinherit:用户不会继承所属角色的权限



: 授予role01角色查询权限
grantselectontable student to role01;在这里插入图片描述
: 将测试用户加入角色
grant role01 to test01,test02;

: 验证:验证测试用户的查询权限
\c - test01
select*from student;
\c - test02
select*from student;

4.角色管理-EasyKStudio

4.1 创建角色

: 创建角色,用户和角色在【安全性】里面





4.2 使用角色对用户授权

: 授予role11角色查询权限





: 创建测试用户test11



4.3 验证

: 新建数据库连接




: 在【数据库】中找到【test】数据库,点击【模式】,在【public】中找到student表,右键查询数据




5. 不同场景下的不同用户权限需求

: 超级管理员,对整个实例拥有全部权限
createuser super_user superuser;: 库级管理员,对整个数据库拥有全部权限
createuser db_user;# 创建用户 db_usercreatedatabase db owner db_user;# 创建数据库db,指定所属主为db_user: 模式管理员,对指定模式拥有全部权限
createuser sc_user;createschema sc authorization sc_user;# 创建模式,指定模式管理员为sc_user: 有两种方式可以让用户加入角色
# 将现有用户加入角色grant role_name to user_name;# 新建用户时加入角色createuser user_name in role role_name;
页: [1]
查看完整版本: 人大金仓KCA | 用户与角色