原文链接:【KWDB 创作者计划】KWDB数据库用户管理操作 - OSCHINA - 中文开源技术交流社区
作者:kirkWang
在数据驱动时代,数据库的安全高效管理对企业和组织至关重要。KWDB 作为面向 AIoT 场景的分布式多模数据库,自 2.2.0 版本上线后,我们已深入了解其基本操作与特性。
不过,数据库安全管理不仅是数据存储查询,用户管理也极为关键。合理的用户管理可保障数据库安全,防止数据泄露,还能提高使用效率。通过精细划分用户角色、合理分配权限,能降低安全风险。
本文将结合官网文档,深入探讨 KWDB 数据库的用户管理操作,涵盖用户创建、角色设置等内容,为大家提供完整解决方案,提升数据库安全性与管理效率,开启探索之旅。
KWDB 支持管理用户权限,确保关键、重要功能、数据的安全性。此外,KWDB 也支持为用户定制管理权限,在我们下载的安装包里就有一个 add_user.sh 文件用户添加初始的用户。
运行 add_user.sh(这里我 pwd 我设置成了 Abcd1234,存这里方便记忆)
可以看到,我们这里需要给出两个参数:user_name 与 password 截图上呈现的是 user_name 这里 pwd 是隐藏的,无法看到。
可以直接 show users; 来展示所有用户。
也可以进入数据库后我们可以直接 use system ,也就是切换到系统数据库,在系统数据库内有 users 表,我们用 select 语句直接查询即可看到所有的用户信息,这里的加密方式是 hash 加密的。
使用命令来添加用户,这里我使用的是 create 语句添加了一位 superboy 的用户,这里
create user superboy with password 'Abcd1234';
下图中可以看到,是添加成了的。
注:这里不能直接使用 insert 语句来操作,是无法正确添加的。
我留一个刷新权限操作,这是我在群里面看他们发的,与 MySQL 的差别还是很大的。
grant admin to superboy;
grant admin to teacher;
都刷新一下权限就能正常的登录操作了。
语法:
CREATE USER [IF NOT EXISTS] <name> [WITH] [CREATEROLE | NOCREATEROLE | LOGIN | NOLOGIN | <password_clause> | <valid_until_clause>];
在下面的表里面我们就能看到整个的操作逻辑了。
| 参数 | 说明 | | -------------------- | ------------------------------------------------------------ | | IF NOT EXISTS
| 可选关键字。当使用 IF NOT EXISTS
关键字时,如果目标用户不存在,系统创建目标用户。如果目标用户存在,系统创建用户失败,但不会报错。当未使用 IF NOT EXISTS
关键字时,如果目标用户不存在,系统创建用户。如果目标用户存在,系统报错,提示目标用户已存在。 | | name
| 待创建的用户名。用户名不区分大小写,必须以字母或下划线(_
)开头,只支持字母,数字或下划线(_
),长度为 1 - 63 个字符。 | | CREATEROLE
| 创建角色。设置该选项的用户可以创建、修改、删除其他用户或角色。默认情况下,创建用户时不设置该选项。 | | NOCREATEROLE
| 创建用户时的默认选项,表示禁止创建角色。 | | LOGIN
| 创建用户时的默认选项,表示用户可以登录 KWDB 服务器。 | | NOLOGIN
| 禁止登录 KWDB 服务器。默认情况下,创建用户时不设置该选项。 | | password_clause
| 设置用户密码。格式为 PASSWORD <string_or_placeholder>
,也支持使用 NULL
值。设置该选项的用户可以使用密码安全访问节点。密码必须采用字符串的形式,并使用单引号('
)将密码括起来。默认情况下,创建用户时不设置该选项。 | | valid_until_clause
| 设置密码有效期,格式为 VALID UNTIL <string_or_placeholder>
,也支持使用 NULL
值。支持 timestamp 格式。到达指定日期或时间后,密码失效。设置时需使用单引号('
)将密码有效期括起来。默认情况下,创建用户时不设置该选项。 |
CREATE USER cannot WITH NOLOGIN;
查看是否创建成功,但是在 options 下面的属性值是 NOLOGIN 代表无法进行登录操作。
drop USER 语句用于删除用户。
具体语法:
drop USER [IF EXISTS] ;
实操测试:
drop user cannot;
查看是否删除成功:
确认已经删除成功了。
KaiwuDB 有自己的可视化工具,可以直接进行连接操作。
下载地址:https://gitee.com/kwdb/kwdb/releases/tag/V2.2.0
下载完毕解压进入到对一个文件夹,点击应用文件即可。
由于没有自动发送到桌面快捷方式,这里建议自己在桌面上发一个快捷方式,以便后面的访问操作。
登录操作很直接的,在常规中添加服务器的 IP 地址,同时我们需要注意的是端口号为 26257,我们需要在安全组里面单独添加上,这样来保障我们的端口是可以连接的,添加的时候把 Web 的 8080 端口号也添加上。
测试了 teacher 的,在测试一下 superboy 的,确认两个用户都是没有问题的。
我们操作修改密码这里不能使用 update 语句,需要使用下面这个。
alter role root with password 'yourpwd';
我们来测试修改 superboy 的 pwd 试试。
alter role superboy with password 'aBcd1234';
可以看到 superboy 与 teacher 的密码不同了。
那么登录测试一下。
登录成功,没有任何为题,说明还是很靠谱的操作呢。
登录后我们看到关系数据库与时序数据库是分开的,这也方便我们操作。
在数据驱动时代,合理的用户管理对 KWDB 数据库安全高效运行至关重要,可保障数据安全、防止泄露并提高使用效率。用户操作是每位 DBA 必然需要具备的技能,本文对于 KWDB 数据库用户的各类操作提供了一个比较完整的示例,希望能给到大家一定的帮助。
KWDB 开源库地址:https://gitee.com/kwdb/kwdb
KWDB 学习地址:https://www.kaiwudb.com/learning/
KWDB 活动地址:https://mp.weixin.qq.com/s/ZKQo7eQj_AtwamONCSl07A
希望本文能为大家带来一些价值,欢迎留言讨论。