|
人大金仓KCA | 用户与角色
一、知识预备
二、具体实施
1. 用户管理-命令行
1.1 创建和修改用户 1.2 修改用户密码 1.3 修改用户的并发连接数 1.4 修改用户的密码有效期
2.用户管理-EasyKStudio
2.1 创建和修改用户 2.2 修改用户密码 2.3 修改用户的并发连接数 2.4 修改用户的密码有效期
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 创建和修改用户
[Step1]: 使用system用户登录test数据库,创建 user01 用户,不指定密码- ksql -Usystem -d test
- createuser user01;
- \du user01
复制代码
[Step2]: 创建user02用户,指定密码为kingbase- createuser user02 password 'kingbase';
复制代码
[Step3]: 修改user01用户,授予createdb权限- alteruser user01 CREATEDB;
复制代码
1.2 修改用户密码
[Step1]: 用户在没有密码的时候不允许登录
[Step2]: 修改用户的密码,密码不允许使用双引号- alteruser user01 password 'kingbase';
复制代码
1.3 修改用户的并发连接数
[Step1]: 限制用户的最大并发连接数- alteruser user01 connection limit1;
复制代码
1.4 修改用户的密码有效期
[Step1]: 将用户的密码有效期设置为已过期- alteruser user01 valid until '2023-12-12';
复制代码
[Step2]: 将用户的密码有效期设置为永不过期- alteruser user01 valid until 'infinity';
复制代码
[Step3]: 删除用户
当用户存在依赖关系时,无法删除用户
2.用户管理-EasyKStudio
2.1 创建和修改用户
[Step1]: 创建 user11 用户,指定密码为kingbase
[Step2]: 修改user11用户,授予createdb权限
2.2 修改用户密码
[Step1]: 修改用户的密码
2.3 修改用户的并发连接数
[Step1]: 限制用户的最大并发连接数
2.4 修改用户的密码有效期
[Step1]: 将用户的密码有效期设置为永不过期
[Step2]: 删除用户
3. 角色管理-命令行
3.1 创建角色
[Step1]: 创建角色,角色和用户没什么区别,区别在于角色默认不允许登录- create role role01 password 'kingbase';
复制代码
3.3 使用角色对用户授权
加入到角色的用户默认会自动继承角色所拥有的全部权限。
[Step1]: 在之前实验中我们创建了一张student表
[Step2]: 创建两个测试用户,分别授予inherit和noinherit权限- createuser test01 password 'kingbase' inherit;createuser test02 password 'kingbase' noinherit;
复制代码inherit:用户会自动继承所属角色的权限,默认选项 noinherit:用户不会继承所属角色的权限
[Step3]: 授予role01角色查询权限- grantselectontable student to role01;
复制代码 在这里插入图片描述
[Step4]: 将测试用户加入角色- grant role01 to test01,test02;
复制代码
[Step5]: 验证:验证测试用户的查询权限- \c - test01
- select*from student;
- \c - test02
- select*from student;
复制代码
4.角色管理-EasyKStudio
4.1 创建角色
[Step1]: 创建角色,用户和角色在【安全性】里面
4.2 使用角色对用户授权
[Step1]: 授予role11角色查询权限
[Step2]: 创建测试用户test11
4.3 验证
[Step1]: 新建数据库连接
[Step2]: 在【数据库】中找到【test】数据库,点击【模式】,在【public】中找到student表,右键查询数据
5. 不同场景下的不同用户权限需求
[Step1]: 超级管理员,对整个实例拥有全部权限- createuser super_user superuser;
复制代码 [Step2]: 库级管理员,对整个数据库拥有全部权限- createuser db_user;# 创建用户 db_usercreatedatabase db owner db_user;# 创建数据库db,指定所属主为db_user
复制代码 [Step3]: 模式管理员,对指定模式拥有全部权限- createuser sc_user;createschema sc authorization sc_user;# 创建模式,指定模式管理员为sc_user
复制代码 [Step4]: 有两种方式可以让用户加入角色- # 将现有用户加入角色grant role_name to user_name;# 新建用户时加入角色createuser user_name in role role_name;
复制代码 |
|