KingbaseESV8R6普通用户无权限执行vacuum

背景

数据库日志有如下提示:
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,也应由超级用户完成操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值