首页 > 其他分享 >KingbaseESV8R6普通用户无权限执行vacuum

KingbaseESV8R6普通用户无权限执行vacuum

时间:2023-09-18 13:56:01浏览次数:37  
标签:KingbaseESV8R6 database system t1 vacuum TEST ud 普通用户

背景

数据库日志有如下提示:
WARNING: skipping "pivot_t1" --- only table or database owner can vacuum it
从提示可以看出,有用户对表pivot_t1进行vacuum操作时,出现了权限问题。

测试

TEST=# \c - ud;
You are now connected to database "TEST" as user "ud".
TEST=>
TEST=> vacuum pivot_t1;
WARNING:  skipping "pivot_t1" --- only table or database owner can vacuum it
VACUUM
TEST=> \du
                                    List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+------------
 u1        |                                                            | {role01}
 ud        |                                                            | {role01}

TEST=> \dn
      List of schemas
       Name       | Owner
------------------+--------
 ud               | system

1.把system的权限授予给用户ud

TEST=> \c - system
You are now connected to database "TEST" as user "system".
TEST=# grant system to ud;
GRANT ROLE
TEST=#
TEST=# \c - ud
You are now connected to database "TEST" as user "ud".
TEST=> vacuum pivot_t1;
VACUUM
TEST=> \c - system
You are now connected to database "TEST" as user "system".
TEST=# revoke system from ud;
REVOKE ROLE
TEST=#
TEST=# \c - ud
You are now connected to database "TEST" as user "ud".
TEST=> vacuum pivot_t1;
WARNING:  skipping "pivot_t1" --- only table or database owner can vacuum it
VACUUM

2.更改用户ud为超级用户

TEST=# alter user ud with superuser;
ALTER ROLE
TEST=# \c - ud
You are now connected to database "TEST" as user "ud".
TEST=# vacuum pivot_t1;
VACUUM

查看ud用户权限

TEST=# \du
                                    List of roles
 ud        | Superuser                                                  | {role01}

结论

只有superuser权限的用户可以对表执行vacuum操作,不建议单独授予此权限,此权限应由system超级用户统一管理。
一般常见的业务系统中,autovacuum达到阈值自动触发,无需手工执行vacuum,即使一些场景需要手工执行vacuum,也应由超级用户完成操作。

标签:KingbaseESV8R6,database,system,t1,vacuum,TEST,ud,普通用户
From: https://www.cnblogs.com/kingbase/p/17711698.html

相关文章

  • KingbaseESV8R6用户登录失败自动锁定后解锁遇到权限问题
    测试用户登录失败自动锁定创建用户tee并授权。TEST=#createusertee;CREATEROLETEST=#alteruserteewithcreatedb;ALTERROLETEST=#TEST=#alteruserteewithcreaterole;ALTERROLETEST=#TEST=#alterroleteewithreplication;ALTERROLETEST=#alterus......
  • KingbaseESV8R6识别IO使用率过高
    前言数据库正常运行离不开I/O的使用,在操作系统上,I/O又离不开存储的性能及使用方式,我们可以在存储层利用raid条带化技术使IOPS达到最佳性能。本篇文章有助于确认数据库I/O使用率过高的原因,以及解决方法。确定I/O使用率过高的原因1.需要数据库内置的sys_stat_statements扩展并......
  • KingbaseESV8R6延迟提交参数
    前言队列理论在我们生活中的应用随处可见,例如我们去食堂打饭需要排队,我们生活中随处可见排队的场景。在计算机领域中,性能诊断等地方使用队列理论的案例也很多。服务器硬件分为动态设备和静态设备。CPU和IO子系统属于动态设备,RAM属于静态设备,队列理论只对动态设备适用。Kingbase......
  • KingbaseESV8R6使用kbbench计算连接耗时
    前言本文讨论一下KingbaseESV8R6数据库中如何计算数据库连接耗时。有这样一个场景,不借助第三方工具,在数据库服务端计算1000个数据库连接的总耗时,并取得每个连接耗时的平均值。怎样实现呢?我们可以借助kbbench工具。这是Kingbase数据库自带的一款客户端工具。kbbench介绍kbbench......
  • KingbaseESV8R6中查看索引常用sql
    前言KingbaseES具有丰富的索引功能,对于运行一段时间的数据库,经常需要查看索引的使用大小,使用状态等。尤其重复索引的存在,有时会因为索引过多而造成维护成本加大和减慢数据库的运行速度。下面是经常使用的查看索引的sql。1.查看表上索引个数,是否唯一,表与索引大小。SELECTCO......
  • KingbaseESV8R6全局临时表不能进行reindex操作
    背景我们经常遇到两种情况下会重建索引,reindex1、索引崩溃,由于软件或硬件问题导致索引内数据失效而不可用。2、索引膨胀,当索引膨胀会占用过多磁盘空间,reindex可以解决此问题。对于临时表和全局临时表而言,临时表可以进行reindex操作,而全局临时表不能进行此操作,原因是全局临时表......
  • linux中普通用户如何防止重要文件被意外删除
     001、[liujiaxin01@pc1~]$lstest01[liujiaxin01@pc1~]$pwd##普通用户家目录/home/liujiaxin01[liujiaxin01@pc1~]$tree##重要文件所在目录.└──test01└──import_file.txt1directory,1file[liujiaxin01@pc1~]$cp-rtest01/tes......
  • 普通用户登录切换到root用户
    使用su命令:在终端中输入以下命令并按Enter键:su-输入root用户的密码,然后按Enter键。如果密码正确,你将会切换为root用户,并且可以执行root用户的操作。使用sudo命令:在终端中以普通用户登录。输入以下命令并按Enter键:sudosu-输入你的用户密码,然后按......
  • linux普通用户赋予USB设备访问权限
    新建规则文件,GROUP表示用户组.id查看用户$iduid=1000(huanhe)gid=1000(huanhe)组=1000(huanhe)$cat/etc/udev/rules.d/xxx_printer.rulesSUBSYSTEM=="usb",ATTRS{idVendor}=="0016",MODE="0666"SUBSYSTEM=="usb_device",ATTRS{idVe......
  • WinSCP 普通用户上传文件没有权限解决
    普通用户在终端获取临时root权限sudo-i查看sftp应用程序的路径cat/etc/ssh/sshd_config|grepsftp//结果Subsystemsftp/usr/libexec/openssh/sftp-server 在WinSCP端进入高级设置-SFTP-设置SFTPserversudosu-c/usr/libexec/openssh/sftp-server 在......