如果你是第一次玩postgresql数据库,你会发现你给role或者user明明设置了密码,但在登录的时候毛都不用输入,直接就进去了,怎么那么爽快!?

虽然爽快,但貌似不该这样啊.

其实这些都和一个重要的文件有关,它就是pg_hba.conf!

那么这个文件在哪呢?如果你是mac或是linux系统,你可以通过如下方式找到这个文件:

ps aux|grep postgres
//你会发现输出其中有-D的一行
apple           70988   0.0  0.2  2604888   8884 s001  S     2:05下午   0:00.54 /usr/local/Cellar/postgresql/9.4.4/bin/postgres -D /usr/local/var/postgres

上面-D后面就是pg_hba.conf的位置所在,用编辑器打开它,你会发现其中包含了详细的说明文档.如果你不想鸟这些东东,你只要知道每一条都是一条策略,说明了访问那些位置需要什么样的认证方式,比如:

local   all             all                     trust

说明了所有本地访问都是受到信任的,在认证时是不需要输入密码的,像trust这一列称为method,有很多种method,比如:

"trust", "reject", "md5", "password", "gss", "sspi",
"ident", "peer", "pam", "ldap", "radius" or "cert"

有兴趣的可以自行进一步研究下,那么如果我希望在本地登录统统需要输入密码,你只要吧local最后的method改为password即可.你当然可以制定更加具体一点的策略:

host    db_name user_name   10.10.10.1  password

比如以上策略表示通过socket连接,使用用户user_name访问地址10.10.10.1上的数据库db_name需要输入密码!

ok!现在通过psql登录本地任何数据库都需要输入密码啦,但是通过gui工具pgadmin登录还是不需要密码,我们还需要修改另2条策略:

# IPv4 local connections:
#host    all             all             127.0.0.1/32            password
# IPv6 local connections:
#host    all             all             ::1/128                 password

因为pgadmin不是通过local来登录postgresql的.你还可以设置一条策略,就是所有通过网络来访问的都要输入密码:

host    all             all              samehost                password

其中samehost代码任何host地址.

最后还要说另一个文件.pgpass,这个文件的目的是如果登录时需要输入密码,那么你可以把对应的密码写在这里,这样你就可以直接登录了.

该文件是在用户的home目录中,也可能开始并不存在,需要手动创建:

touch ~/.pgpass
chmode 0600 ~/.pgpass

后面一句是postgresql所要求的,增加安全性.

比如test用户的密码为pwd,则我们可以在.pgpass文件中增加一行:

*:5432:*:test:pwd

那么用test用户访问任何地址的任何数据库(通过5432端口)都不需要手动输入密码了,但是其它用户还是需要输入密码的.

MacOS下postgresql数据库密码的那些事的更多相关文章

  1. Windows下Postgresql数据库的下载与配置方法

    注意下载的是二进制版,不是带Windows Installer的,即绿色版本 http://www.enterprisedb.com/products-services-training/pgbind ...

  2. MetaSploit攻击实例讲解------终端下PostgreSQL数据库的使用(包括kali linux 2016.2(rolling) 和 BT5)

    不多说,直接上干货! 配置msf连接postgresql数据库 我这里是使用kali linux 2016.2(rolling)   用过的博友们都知道,已经预安装好了PostgreSQL. 1. p ...

  3. centos7下postgresql数据库安装及配置

    1.安装 #yum install -y postgresql-server 2.postgresql数据库初始化 #service postgresql initdb 3.启动postgresql服 ...

  4. linux下PostgreSQL数据库的源码安装

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  5. Linux下postgresql数据库部署与配置

    1.检查postgresql是否已经安装:rpm -qa | grep postgres 2.检查PostgreSQL 安装位置:rpm -qal | grep postgres 3.卸载Postgr ...

  6. 避免硬编码你的PostgreSQL数据库密码

    一个密码文件包含了我们需要连接的五个字段,所以我们可以使用文件权限来使密码更安全. host:port:dbname:user:password such as myhost:5432:postgre ...

  7. windows下postgresql数据库备份和还原

    1.通过cmd进入数据库的bin目录 cd C:\Program Files\PostgreSQL\9.6\bin 2.执行pg_dump备份命令,localhost 或者IP pg_dump -h ...

  8. PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库

    最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...

  9. odoo开发笔记 -- odoo和postgresql数据库导入相关

    odoo数据库 导入.导出 首先odoo框架下postgresql数据库中,表结构的存储方式: 存在id(小写),并没有所谓的外部ID 例如数据库中的国家表:模块名_tb_country   (注意: ...

随机推荐

  1. Java-NIO(二):缓冲区(Buffer)的数据存取

    缓冲区(Buffer): 一个用于特定基本数据类行的容器.有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类. Java NIO中的Buffer主要用于与NIO通道进行交互,数据是从通 ...

  2. Spring(二):Spring框架&Hello Spring

    Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架. Spring 框架 ...

  3. js中call和apply的用法

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  4. 【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建

    由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...

  5. 【swift】ios中生成二维码

    ios开发中可以自己代码生成二维码,需要使用到一个框架 CoreImage CoreImage框架可以做滤镜,Gif动图,二维码等 先看效果图 下面直接贴上代码(OC也是下面一样的流程) func c ...

  6. Lintcode388 Permutation Sequence solution 题解

    [题目描述] Given n and k, return the k-th permutation sequence. Notice:n will be between 1 and 9 inclusi ...

  7. HDU3389 Game

    Problem Description Bob and Alice are playing a new game. There are n boxes which have been numbered ...

  8. NOIP2014-5-10模拟赛

    Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的 ...

  9. hdu 3436 线段树 一顿操作

    Queue-jumpers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  10. [bzoj3668][Noi2014]起床困难综合症/[洛谷3613]睡觉困难综合症

    来自FallDream的博客,未经允许,请勿转载,谢谢. 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综 ...