PostgreSQL 几种禁止应用访问的方法

在数据库维护时,有时因为特殊的数据库维护,在维护期间,需要禁止应用访问,下面总结下常见的禁止应用访问的方法。

方法一:停应用

最常见的方法也就是停应用,将应用程序停掉,这种方法也有不足,当应用服务器很多,有十几台甚至几十台时,一台台停显然太慢了,下面有几种方法是从数据库服务器考虑的。

方法二:设置pg_hba.conf

设置 $PGDATA/pg_hba.conf ,对外所有IP不允许连接。 在$PGDATA/pg_hba中加一条

1
2
# IPv6 local connections:  
host all all 0.0.0.0/0 reject

同时将允许的行注释掉

1
# host all all 0.0.0.0/0 md5

设置好后,重新载入 pg_hba,只需要以下命令

1
2
[postgres@pg1 pg_root]$ pg_ctl reload -D $PGDATA  
server signaled

这样,就不允许所有的IP连接数据库了,当然,对已经连上数据库的会话不受影响,如有需要,可以通过”pg_teminate_backend” 结束已经连接的会话 (PG 8.4或者以下版本)。

方法三:修改数据库连接数

修改数据库 mydb 的连接数为2

1
2
postgres=# alter database mydb connection limit 2;  
ALTER DATABASE

已经2个连接的情况下,再次连接

1
2
[postgres@pg1 ~]$ psql mydb skytf  
psql: FATAL: too many connections for database "mydb"

方法四:修改应用帐号密码

修改应用帐号的密码,数据库维护操作完成后再修改回来。
修改密码语法

1
2
postgres=# alter role dwetl with encrypted password '111111';  
ALTER ROLE

方法五:设置OS层防火墙

通过OS层面设置防火墙访问策略,由于这个设置需要ROOT权限,这里暂时不讨论。

总结

上面介绍了五种方法,为了省事,本人经常采用方法4, 同时推荐用方法2和3, 具体采用哪种方法也要根据具体情况选择。

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/236356.html

(0)
上一篇 2022年1月24日
下一篇 2022年1月24日

相关推荐

发表回复

登录后才能评论