首页
学习
活动
专区
工具
TVP
发布

服务控制(3)

阻止新的连接

阻止数据库连接有以下几种方式:

暂停/恢复连接池;

停止服务;

通过设置连接限制数为0来限制指定的数据库的连接数为零:

ALTER DATABASE FOO_db CONNECTION LIMIT0;

上述命令限制普通用户连接到数据库,但依然允许超级用户连接。

通过设置连接限制数为0来限制指定的用户数的连接数为零(参考“限制每个用户只允许一个会话”部分):

ALTER USER foo CONNECTION LIMT 0;

这样限制普通用户连接到数据库,但如果用户时超级用户,则仍然可以连接,因为这样才能避免意外地使自己拒绝连接到数据库。

修改基于主机的认证(host-based authentication,HBA)来拒绝所有连接,然后重新载入配置文件“

新建一个名为pg_hba_lockdown.conf 的文件,人后添加以下两行到该文件中。这些规则将完全阻断到服务器的连接,包括超级用户。

#TYPE DATABASE USER CIDE_ADDRESS METHOD

local all all reject

host all all 0.0.0.0/0 reject

如果你依然希望超级用户能够访问,那么试试下面的设置:

#TYPE DATABASE USER CIDE_ADDRESS METHOD

local all postgres peer

local all all reject

host all all 0.0.0.0/0 reject

如何实现的???

pg_hba.conf文件配置基于主机认证规则的地方。我们无需自己设定认证,而只是设定使用哪种认证机制。这是PostgreSQL的最高级别认证规则。这些规则设置在一个文件里面,当有新连接进来的时候,postmaster会应用里面的规则。为了防止拒绝服务攻击,HBA规则不进行数据库访问,因此我们无法知道一个用户是否是超级用户。因此,你可以锁定所有用户,淡记住你可以通过修改和重新加载该文件来允许一些访问。

限制每个用户只允许一个会话

如果资源需要进行严格的控制,你可能希望限制用户,使他们最多只能对服务器请求一个连接。也可以使用同样的技术完全禁止该用户的连接。

该如何做???

我们可以使用以下命令限制用户的连接仅为1:

postgres = # ALTER ROLE fred CONECTION LIMIT 1;

ALTER ROLE

这样会造成当用户额外的连接请求时将会受到以下错误信息:

FATAL: too many connections for role "fred".

你可以将值设置成-1, 从而接触这种限制。

可以将这个限制设置成0 或者任何正整数。你也可以设置这个值到超过max_connect-ctions, 但这取决于你是否认为有必要这么做。

将该设置为0将完全限制正常连接。

注意,即便你将超级用户的连接数设置成0,他们讲仍然能够连接。

如何实现的???

连接限制在会话建立连接时生效。增加连接数不会对已连接的用户有任何影响,同样降低连接数也不会对已连接的用户有任何影响,除非已连接的用户断开,并重新连接。

所以如果你降低了连接数,你应该立即检查当前的连接数是否超过了你新设置的限制的值,否则如果发生故障可能会出现一些奇怪的现象。

如果你发现连接的会话数超过了限制的值,你可以礼貌地叫用户断开连接,也可以参考“断开用户连接条款”。

也需你担心他们有可能会覆盖掉已经设置的值,其实大可不必,因为普通用户不能修改自己的用户连接数。

###参考文献:PostgreSQL 9 Administration Cookbook(第2版)中文版###

33.快速选择单元格

在选择单元格(行,列)时,同时按住Shift键可以选中连续的单元格(行、列)。在选择单元格(行、列)时,同时按住Ctrl键可以选中不连续的单元格(行、列)。

34.快速选定Excel区域

在Excel中,要想在工作簿中快速选定某块区域,只需单击想选定的区域的左上角单元格,同时按住Shift键不放,再单击想选定的区域的右下角单元格即可。另外:按住Ctrl键再用鼠标可任意选定多个不相邻的区域。 事实上选定区域和顺序无关,只需首先选定矩形区域的一个角的单元格,在按下Shift的同时单击对角单元格。

35.备份工件簿

单击“文件→保存”命令,打开“另存为”对话框,按右上角的“工具”旁的下拉按钮,单击“常规选项”,在随后弹出的对话框中,选中“生成备份”选项(),单击“确定”按钮保存。以后修改该工作簿后再保存,系统会自动生成一份备份工作簿,且能直接打开使用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181112G1J4IO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券