首页 > 数据库 >KingbaseES数据库禁止某用户连接到数据库

KingbaseES数据库禁止某用户连接到数据库

时间:2024-07-26 11:12:03浏览次数:9  
标签:数据库 用户 kingbase 权限 KingbaseES 连接

一、权限介绍

KingbaseES数据库中的权限控制主要分为两个层次:实例级别和数据库级别。实例级别的权限由sys_hba.conf文件控制,而数据库级别的权限则由数据库内部的权限系统控制。对于数据库以及实例的权限控制,这两者权限控制可以理解为粗粒度,细粒度。

实例级别权限:这主要通过sys_hba.conf文件进行配置,用于控制哪些用户可以连接到KingbaseES实例,以及他们可以使用哪种认证方式。sys_hba.conf文件中的每一行都定义了一个访问控制规则,用于匹配特定的连接请求。
数据库级别权限:这是数据库内部的权限系统,用于控制用户可以在数据库中执行哪些操作。例如,可以授予或撤销用户对表的SELECT、INSERT、UPDATE和DELETE权限,对数据库连接权限同理。

二、原理

要禁止某用户连接到目标数据库,我们需要在实例级别或数据库级别进行相应的配置。在实例级别,我们使用sys_hba.conf文件来拒绝该用户的连接请求。在数据库级别,我们可以撤销该用户对目标数据库的所有权限,以确保即使该用户能够连接到KingbaseES实例,也无法访问目标数据库。

三、实现方式

修改sys_hba.conf文件
data目录下找到KingbaseES的sys_hba.conf配置文件,在文件中添加或修改一行,指定该用户无法连接到目标数据库。例如,要禁止用户username从任何地址连接到数据库dbname,可以添加以下行:

host dbname username 0.0.0.0/0 reject

这表示对于来自任何IP地址(0.0.0.0/0)的、尝试连接到数据库dbname的、用户名为username的连接请求,都将被拒绝。
重启KingbaseES数据库服务生效。

撤销数据库级别权限
我们还可以在数据库级别撤销该用户的所有权限。这可以通过SQL命令来完成。首先,使用具有足够权限的用户(如超级用户)登录到KingbaseES数据库,然后执行以下命令:

REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username;
REVOKE all ON DATABASE kingbase FROM public;

这将撤销用户username对数据库dbname的所有权限。即使该用户能够连接到KingbaseES实例,也无法访问数据库dbname。
注意,除了回收某用户对某数据库的所有权限,还需要回收public用户权限。否则,该用户还是可以登录目标数据库。
当然,除了回收all所有权限,我们只需要回收connect权限即可限制用户连接目标数据库。

如下测试:

kingbase=> \c kingbase system
You are now connected to database "kingbase" as userName "system".
kingbase=# REVOKE all ON DATABASE kingbase FROM public;
REVOKE
kingbase=# \c kingbase user1;
FATAL:  permission denied for database "kingbase"
DETAIL:  User does not have CONNECT privilege.
Previous connection kept
kingbase=# \c kingbase system
You are now connected to database "kingbase" as userName "system".
kingbase=# grant connect  ON DATABASE kingbase to  public;
GRANT
kingbase=# \c kingbase user1
You are now connected to database "kingbase" as userName "user1".
kingbase=> \c kingbase system
You are now connected to database "kingbase" as userName "system".
kingbase=# revoke connect  ON DATABASE kingbase from  public;
REVOKE
kingbase=# \c kingbase user1
FATAL:  permission denied for database "kingbase"
DETAIL:  User does not have CONNECT privilege.
Previous connection kept

四、注意事项

在修改配置文件或执行SQL命令之前,请务必备份相关文件或数据库存在物理备份集。
在撤销用户权限时,请确保不会影响到其他用户的正常操作。如果可能的话,最好先在测试环境中验证变更方案。

标签:数据库,用户,kingbase,权限,KingbaseES,连接
From: https://www.cnblogs.com/kingbase/p/18218271

相关文章

  • KingbaseES 等待事件之DataFileRead
    等待事件含义IO:DataFileRead等待事件发生在会话连接等待后端进程从存储中读取所需页面,原因是该页面在共享内存中不可用或无法找到。所有查询和数据操作(DML)操作都访问缓冲池中的页面,语句包括SELECT、UPDATE和DELETE等。例如,UPDATE可以从表或索引中读取页面。如果请求或更新的页......
  • KingbaseES 数据库WAL日志暴增问题处理
    故障现象:kingbase数据库容量不足100G,业务繁忙程度小,但是每天产生112283个WAL日志,每个日志16M,生成约1.7T的归档日志分析过程:思路一:从数据库日志入手,分析过程如下:sys_log日志:2024-06-0223:54:05.497CST3130361b580b0.7a47182242021-12-1212......
  • KingbaseES V8R6等待事件之 lwlock: CSNLogControlLock
    一、原理CSN日志是数据库中用于记录事务提交顺序和事务状态的重要日志,为了解决高并发场景下获取快照时的性能瓶颈,引入CSN机制。CSN机制通过为每个非只读事务分配一个XID(事务号),并在事务提交时推进CSN,同时保存CSN与XID的映射关系在CSNLog中。CSNLogControlLock等待事件通常表示某......
  • KingbaseES V8R6等待事件之 lock: transactionid
    等待事件含义Lock:在数据库管理系统中,锁是用来确保数据完整性和一致性的重要机制。当一个事务需要修改数据时,它会请求一个锁来防止其他事务同时修改相同的数据,从而导致数据不一致。transactionid:这通常是一个唯一标识符,用于区分和跟踪数据库中的不同事务。每个事务都有一个唯一的......
  • KingbaseES 更改 WAL 日志文件大小
    一、引言WAL日志的目的:WAL(Write-AheadLogging)是KingbaseES数据库中的一个关键特性,用于确保在数据库崩溃或故障后能够恢复数据。WAL日志记录了数据库的所有更改,这样即使数据库突然宕机,也可以从WAL文件中恢复数据到一致性状态。命令的功能:sys_resetwal命令用于重置WAL日志,它可以......
  • KingbaseES 数据库无响应问题分析
    一、背景及理论阐述某项目数据库系统是集群环境,主库业务卡顿,应用反馈部分业务无法正常进行。在操作系统中,物理内存(RAM)是有限的资源,当内存需求超过物理内存的容量时,操作系统会使用页面调度机制来管理内存资源。页面调度涉及将不常用的内存页面(Page)移到磁盘上的交换空间(SwapSpace......
  • KingbaseES 对象状态规则总结
    KingbaseES的PLSQL对象包括函数、存储过程、触发器、包、包体、对象类型、对象类型体和匿名块,其中匿名块即用即销,不具有状态属性,SQL中存在依赖的常见对象是表,视图,索引,自定义类型,自定义操作符等等。在使用编码过程会存在相互引用和被引用,就会导致对象的增删改无法“顺利”进行,本文......
  • KingbaseES 自定义操作符使用示例
    本文详细介绍了KingbaseES中在兼容适配过程中,当遇到不支持的操作符,如何通过自定义方式解决兼容适配问题。Kingbase自定义操作符语法和用例如下:用例数据:createtabledemo(idnumeric(10,5));insertintodemovalues(1.1);insertintodemovalues(0);insertintodemoval......
  • KingbaseES 集群运维典型案例 03 --“双主” sys_rewind恢复机制
    案例说明:主库主机系统重启,触发failover切换,原主库系统启动后,数据库服务被启动,出现“双主”,使用“repmgrnoderejoin--force-rewind”恢复集群。通过本案例了解,集群“双主”产生的原因及解决方案,并熟悉sys_rewind在集群恢复中的应用。数据库版本:KingbaseESV8R6一、集群架构......
  • 聊一聊PostgreSQL数据库,以及PostgreSQL认证体系
    PostgreSQL数据库简介PostgreSQL是一种强大的开源关系型数据库管理系统(RDBMS)。它具有以下显著特点和优势:强大的功能:支持丰富的数据类型,包括数组、JSON、XML等复杂数据类型。提供完善的事务处理机制,确保数据的一致性和可靠性。高度的可扩展性:可以通过自定义函数、存储过程和......