Kingbase用户权限管理


ru_shenyang
小白学信创 2024-11-02 21:56:57 1318
分类专栏: 资讯 标签: 国产数据库 运维

 

一、Kingbase用户管理

在Kingbase数据库中,用户管理是非常重要的一部分,涉及到用户的创建、修改、删除以及权限的分配等操作。以下是一些基本的用户管理操作步骤:

二、创建和修改用户

2.1、使用system用户登录test数据库,创建admin用户,不指定密码

[kingbase@Node1 ~]$ ksql test system
用户 system 的口令:
输入 "help" 来获取帮助信息.

test=# CREATE USER admin;
CREATE ROLE

2.2、修改admin用户,授予createdb权限

test=# ALTER USER admin CREATEDB;
ALTER ROLE
test=#

2.3、查看admin用户的信息

test=# \du admin
           角色列表
 角色名称 |  属性   | 成员属于
----------+---------+----------
 admin    | 建立 DB | {}
 

三、修改用户密码

3.1、测试admin用户能否正常登录

test=# \c test admin 192.168.1.11
用户 admin 的口令:
FATAL:  password authentication failed for user "admin"
Previous connection kept

3.2、修改admin用户,设置密码

test=# ALTER USER admin PASSWORD 'kingbase';
ALTER ROLE

3.3、测试admin用户能否正常登录

test=# \c test admin 192.168.1.11
用户 admin 的口令:
您现在连接到数据库"test"作为用户名"admin"在主机名"192.168.1.11"在端口号"54321"。
test=>

四、修改用户的并发连接数

4.1、修改admin用户,限制允许最大并发连接数为1

[kingbase@Node1 ~]$ ksql test system
用户 system 的口令:
输入 "help" 来获取帮助信息.

test=# ALTER USER admin CONNECTION LIMIT 1;
ALTER ROLE
test=#

4.2、查看admin用户信息

test=# \du admin
           角色列表
 角色名称 |  属性   | 成员属于
----------+---------+----------
 admin    | 建立 DB+| {}
          | 1个连接 |

test=#

4.3、测试admin用户创建2个会话

  • • 会话1
\c test admin

test=# \c test admin
用户 admin 的口令:
您现在以用户名"admin"连接到数据库"test"。
test=>
  • • 会话2
[kingbase@Node1 ~]$ ksql test admin
用户 admin 的口令:
输入 "help" 来获取帮助信息.

test=> \conninfo
以用户 "admin" 的身份,通过套接字"/tmp"在端口"54321"连接到数据库 "test"

五、修改用户的口令有效期

5.1、修改admin用户,将口令置为已过期

\conninfo
ALTER USER admin VALID UNTIL '2024-11-01';

test=# ALTER USER admin VALID UNTIL '2024-10-31';
ALTER ROLE

5.2、测试admin用户能否正常登录

\c test admin

test=# \c test admin
用户 admin 的口令:
FATAL:  password authentication failed for user "admin"
Previous connection kept
test=#

5.3、修改admin用户,设置口令永不过期

ALTER USER admin VALID UNTIL 'infinity';

test=# ALTER USER admin VALID UNTIL 'infinity';
ALTER ROLE

5.4、测试admin用户能否正常登录


test=# \c test admin
用户 admin 的口令:
您现在以用户名"admin"连接到数据库"test"。
test=>

5.5、查看admin用户信息

test=> \du admin
                  角色列表
 角色名称 |         属性         | 成员属于
----------+----------------------+----------
 admin    | 建立 DB             +| {}
          | 1个连接             +|
          | 密码有效直至infinity |

test=>

六、删除用户

6.1、使用admin用户登录数据库并创建表t01

ksql test admin
CREATE TABLE t01(id int);

[kingbase@Node1 ~]$ ksql test admin
用户 admin 的口令:
输入 "help" 来获取帮助信息.

test=> CREATE TABLE t01(id int);
CREATE TABLE

6.2、使用system登录后删除admin用户失败

test=> \c test system
用户 system 的口令:
您现在以用户名"system"连接到数据库"test"。
test=# DROP USER admin;
ERROR:  role "admin" cannot be dropped because some objects depend on it
描述:  owner of table t01
test=#

6.3、修改t01表的属主为system用户

test=# ALTER TABLE t01 OWNER TO system;
ALTER TABLE

6.4、再次删除admin用户成功

test=# DROP USER admin;
DROP ROLE
test=#

七、创建角色role1,并将role1授权给user1、user2

7.1、创建用户user1,使用选项INHERIT;用户user2,使用选项NOINHERIT


[kingbase@Node1 ~]$ ksql test system
用户 system 的口令:
输入 "help" 来获取帮助信息.

test=# CREATE USER user1 PASSWORD 'kingbase' INHERIT;
CREATE ROLE
test=# CREATE USER user2 PASSWORD 'kingbase' NOINHERIT;
CREATE ROLE
test=#

7.2、创建role1角色

test=# CREATE ROLE role1;
CREATE ROLE
test=#

7.3、将角色role1授权给user1、user2

test=# \du role1|user*
            角色列表
 角色名称 |   属性   | 成员属于
----------+----------+----------
 role1    | 无法登录 | {}
 user1    |          | {}
 user2    | 没有继承 | {}

test=#
test=# GRANT role1 TO user1,user2;
GRANT ROLE
test=#

7.4、查看role1信息

test=#
test=# \du role1|user*
            角色列表
 角色名称 |   属性   | 成员属于
----------+----------+----------
 role1    | 无法登录 | {}
 user1    |          | {role1}
 user2    | 没有继承 | {role1}

test=#

注意事项:

请注意,以上操作需要具有相应权限的用户才能执行。在实际操作中,还需要考虑到数据库的安全性和稳定性,以及用户的具体需求。如果您需要更详细的操作指南或遇到特定问题,建议查阅Kingbase的官方文档或联系技术支持获取帮助。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=54422
赞同 1
评论 0 条

加入交流群

请使用微信扫一扫!