阻止新的连接
阻止数据库连接有以下几种方式:
暂停/恢复连接池;
停止服务;
通过设置连接限制数为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.备份工件簿
单击“文件→保存”命令,打开“另存为”对话框,按右上角的“工具”旁的下拉按钮,单击“常规选项”,在随后弹出的对话框中,选中“生成备份”选项(),单击“确定”按钮保存。以后修改该工作簿后再保存,系统会自动生成一份备份工作簿,且能直接打开使用。
领取专属 10元无门槛券
私享最新 技术干货