greenplum集群gpadmin用户login权限丢失

10 篇文章 0 订阅
5 篇文章 0 订阅

背景:最近生产环境greenplum集群批量回收普通用户login权限时误把超级用户gpadmin权限回收,导致集群异常无法正常提供服务、无法进行日常运维操作,抛出异常:FATAL:  role "gpadmin" is not permitted to log in

故障操作复现:

登录数据库执行回收gpadmin登录权限

postgres=# 
postgres=# alter role gpadmin nologin;
ALTER ROLE
postgres=#

此时数据库无法执行日常运维操作提示无登录权限,如下:

[gpadmin@redhat2 ~]$ psql
psql: FATAL:  Ident authentication failed for user "gpadmin"
[gpadmin@redhat2 ~]$ 

[gpadmin@redhat2 ~]$ gpstate -m
20220218:00:00:42:051408 gpstate:redhat2:gpadmin-[INFO]:-Starting gpstate with args: -m
20220218:00:00:42:051408 gpstate:redhat2:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.8.0 build 1'
20220218:00:00:42:051408 gpstate:redhat2:gpadmin-[CRITICAL]:-gpstate failed. (Reason='FATAL:  role "gpadmin" is not permitted to log in
') exiting...
[gpadmin@redhat2 ~]$ 

解决方案:

一、使用其它超级用户登录数据库,然后执行:alter role gpadmin login; 

2二、当无其它超级用户可进行修改时,需要使用特殊方式登录单用户模式进行修改gpadmin权限,详细如下:

1.停GP集群,此时已无法通过使用gpstop 命令进行正常停集群了,使用kill -15 杀进程停止服务,切记不能使用kill -9 杀进程。

[gpadmin@redhat2 ~]$ ps -ef|grep green
gpadmin  49824     1  0 Feb17 ?        00:00:00 /opt/greenplum/greenplum-db-4.3.8.0/bin/postgres -D /data/pg_system/gpseg-1 -p 5432 -b 1 -z 2 --silent-mode=true -i -M master -C -1 -x 0 -E
gpadmin  51469 49511  0 00:01 pts/0    00:00:00 grep green
[gpadmin@redhat2 ~]$ 
[gpadmin@redhat2 ~]$ kill -15 49824
[gpadmin@redhat2 ~]$ 

2.登录master节点单用户模式修改gpadmin权限:

[gpadmin@redhat2 ~]$  /opt/greenplum/greenplum-db-4.3.8.0/bin/postgres  --single -P -O -D /data/pg_system/gpseg-1  -p 5432 -c  gp_session_role=utility postgres

PostgreSQL stand-alone backend 8.2.15
backend> alter role gpadmin login;
backend> 

使用ctrl+D退出

此时已经可以通过gpstart -m启动master

3.登录seg节点进单用户模式修改gpadmin权限:

[gpadmin@redhat3 ~]$ /opt/greenplum/greenplum-db-4.3.8.0/bin/postgres  --single -P -O -D /data/pg_system/primary/gpseg0  -p 40000 -c  gp_session_role=utility postgres

PostgreSQL stand-alone backend 8.2.15
backend> alter role gpadmin login;
backend> 

[gpadmin@redhat3 ~]$ /opt/greenplum/greenplum-db-4.3.8.0/bin/postgres  --single -P -O -D /data/pg_system/mirror/gpseg1  -p 50000 -c  gp_session_role=utility postgres

PostgreSQL stand-alone backend 8.2.15
backend>  alter role gpadmin login;
backend> 

注意:所有节点primary+mirror均需要进行登录修改,如进程已经存在无法登录使用kill -15关闭进程后进行操作。

4.启动集群

gpstart -a

集群可进行正常启动,检查gpadmin用户权限、检查增删改情况,集群以恢复正常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值