未登录

信蚁社区 通行证

搜索
热搜: 统信UOS 麒麟
查看: 126|回复: 0

[金仓数据库] 人大金仓KCA | 用户与角色

[复制链接]

103

主题

4

回帖

339

积分

实习版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
339

最佳新人灌水之王优秀版主

发表于 2025-4-19 14:00:32 | 显示全部楼层 |阅读模式
人大金仓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 创建和修改用户

[Step1]: 使用system用户登录test数据库,创建 user01 用户,不指定密码
  1. ksql -Usystem -d test
  2. createuser user01;
  3. \du user01
复制代码
人大金仓KCA | 用户与角色-1.png


[Step2]: 创建user02用户,指定密码为kingbase
  1. createuser user02 password 'kingbase';
复制代码
人大金仓KCA | 用户与角色-2.png


[Step3]: 修改user01用户,授予createdb权限
  1. alteruser user01 CREATEDB;
复制代码
人大金仓KCA | 用户与角色-3.png


1.2 修改用户密码

[Step1]: 用户在没有密码的时候不允许登录
  1. ksql -Uuser01-dtest
复制代码
人大金仓KCA | 用户与角色-4.png


[Step2]: 修改用户的密码,密码不允许使用双引号
  1. alteruser user01 password 'kingbase';
复制代码
人大金仓KCA | 用户与角色-5.png


1.3 修改用户的并发连接数

[Step1]: 限制用户的最大并发连接数
  1. alteruser user01 connection limit1;
复制代码
人大金仓KCA | 用户与角色-6.png


1.4 修改用户的密码有效期

[Step1]: 将用户的密码有效期设置为已过期
  1. alteruser user01 valid until '2023-12-12';
复制代码
人大金仓KCA | 用户与角色-7.png


[Step2]: 将用户的密码有效期设置为永不过期
  1. alteruser user01 valid until 'infinity';
复制代码
人大金仓KCA | 用户与角色-8.png


[Step3]: 删除用户
当用户存在依赖关系时,无法删除用户
  1. drop user user02;
复制代码
人大金仓KCA | 用户与角色-9.png


2.用户管理-EasyKStudio

2.1 创建和修改用户

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

人大金仓KCA | 用户与角色-10.png

人大金仓KCA | 用户与角色-11.png


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

人大金仓KCA | 用户与角色-12.png

人大金仓KCA | 用户与角色-13.png


2.2 修改用户密码

[Step1]: 修改用户的密码

人大金仓KCA | 用户与角色-14.png


2.3 修改用户的并发连接数

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

人大金仓KCA | 用户与角色-15.png


2.4 修改用户的密码有效期

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

人大金仓KCA | 用户与角色-16.png


[Step2]: 删除用户

人大金仓KCA | 用户与角色-17.png

人大金仓KCA | 用户与角色-18.png


3. 角色管理-命令行

3.1 创建角色

[Step1]: 创建角色,角色和用户没什么区别,区别在于角色默认不允许登录
  1. create role role01 password 'kingbase';
复制代码
人大金仓KCA | 用户与角色-19.png


3.3 使用角色对用户授权

加入到角色的用户默认会自动继承角色所拥有的全部权限。
[Step1]: 在之前实验中我们创建了一张student表
  1. select*from student;
复制代码
人大金仓KCA | 用户与角色-20.png


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

    人大金仓KCA | 用户与角色-21.png


[Step3]: 授予role01角色查询权限
  1. grantselectontable student to role01;
复制代码
在这里插入图片描述
[Step4]: 将测试用户加入角色
  1. grant role01 to test01,test02;
复制代码
人大金仓KCA | 用户与角色-22.png


[Step5]: 验证:验证测试用户的查询权限
  1. \c - test01
  2. select*from student;
  3. \c - test02
  4. select*from student;
复制代码
人大金仓KCA | 用户与角色-23.png


4.角色管理-EasyKStudio

4.1 创建角色

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

人大金仓KCA | 用户与角色-24.png


人大金仓KCA | 用户与角色-25.png


4.2 使用角色对用户授权

[Step1]: 授予role11角色查询权限

人大金仓KCA | 用户与角色-26.png


人大金仓KCA | 用户与角色-27.png


[Step2]: 创建测试用户test11

人大金仓KCA | 用户与角色-28.png


4.3 验证

[Step1]: 新建数据库连接
人大金仓KCA | 用户与角色-29.png

人大金仓KCA | 用户与角色-30.png

人大金仓KCA | 用户与角色-31.png


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

人大金仓KCA | 用户与角色-32.png

人大金仓KCA | 用户与角色-33.png


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

[Step1]: 超级管理员,对整个实例拥有全部权限
  1. createuser super_user superuser;
复制代码
[Step2]: 库级管理员,对整个数据库拥有全部权限
  1. createuser db_user;# 创建用户 db_usercreatedatabase db owner db_user;# 创建数据库db,指定所属主为db_user
复制代码
[Step3]: 模式管理员,对指定模式拥有全部权限
  1. createuser sc_user;createschema sc authorization sc_user;# 创建模式,指定模式管理员为sc_user
复制代码
[Step4]: 有两种方式可以让用户加入角色
  1. # 将现有用户加入角色grant role_name to user_name;# 新建用户时加入角色createuser user_name in role role_name;
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表