MacOS下postgresql数据库密码的那些事
如果你是第一次玩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数据库密码的那些事的更多相关文章
- Windows下Postgresql数据库的下载与配置方法
注意下载的是二进制版,不是带Windows Installer的,即绿色版本 http://www.enterprisedb.com/products-services-training/pgbind ...
- MetaSploit攻击实例讲解------终端下PostgreSQL数据库的使用(包括kali linux 2016.2(rolling) 和 BT5)
不多说,直接上干货! 配置msf连接postgresql数据库 我这里是使用kali linux 2016.2(rolling) 用过的博友们都知道,已经预安装好了PostgreSQL. 1. p ...
- centos7下postgresql数据库安装及配置
1.安装 #yum install -y postgresql-server 2.postgresql数据库初始化 #service postgresql initdb 3.启动postgresql服 ...
- linux下PostgreSQL数据库的源码安装
实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...
- Linux下postgresql数据库部署与配置
1.检查postgresql是否已经安装:rpm -qa | grep postgres 2.检查PostgreSQL 安装位置:rpm -qal | grep postgres 3.卸载Postgr ...
- 避免硬编码你的PostgreSQL数据库密码
一个密码文件包含了我们需要连接的五个字段,所以我们可以使用文件权限来使密码更安全. host:port:dbname:user:password such as myhost:5432:postgre ...
- windows下postgresql数据库备份和还原
1.通过cmd进入数据库的bin目录 cd C:\Program Files\PostgreSQL\9.6\bin 2.执行pg_dump备份命令,localhost 或者IP pg_dump -h ...
- PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库
最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQ ...
- odoo开发笔记 -- odoo和postgresql数据库导入相关
odoo数据库 导入.导出 首先odoo框架下postgresql数据库中,表结构的存储方式: 存在id(小写),并没有所谓的外部ID 例如数据库中的国家表:模块名_tb_country (注意: ...
随机推荐
- ROS系统MoveIt玩转双臂机器人系列(一)
一.ROS系统的MoveIt模块简介 机器人操作系统ROS目前最受关注的两个模块是导航(Navigation)和机械臂控制(MoveIt!),其中,机械臂控制模块(后面简称MoveIt)可以让用户快速 ...
- Convert.ToInt32、(int)和int.Parse三者的区别
前者适合将object类类型转换成int类型 (int)适合简单数据类型之间的转换: int.Parse适合将string类类型转换成int类型.
- 使用开源数据库客户端DBeaver连接DB2数据库
下载安装 首先进入 官网 选择对应的版本进行安装. 下载下来后,一直惦记next即可完成安装(期间包括选择文件安装路径等操作,可按需修改). 连接db2 打开DBeaver,新建连接-->DBe ...
- [LeetCode] Path Sum IV 二叉树的路径和之四
If the depth of a tree is smaller than 5, then this tree can be represented by a list of three-digit ...
- cmseasy CmsEasy_5.6_20151009 无限制报错注入(parse_str()的坑)
来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0137013.html parse_str()引发的注入, //parse_str()的作用是 ...
- pandas用法大全
pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd12 2. ...
- [HNOI2010]MATRIX 矩阵
Description Input 第一行包含三个正整数N M P表示矩阵的行数列数以及每个数的范围,接下来N行每行包含M个非负整数,其中第i行第j个数表示以格子(i,j)为右下角的2*2子矩阵中的数 ...
- 计蒜客 NOIP模拟赛(3) D1T1火山喷发
火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 nnn 个生物分别具有 A1,A2,⋯,An点生命值,一次火山喷发总计 M轮,每轮造成 1点伤害,等 ...
- 以独立的语句将new对象置入智能指针
以独立的语句将newed对象置入智能指针: processWidget(std::tr1::share_ptr<Widget>(new Widget) , priority()); 我们在 ...
- ●BZOJ 2839 集合计数
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2839 题解: 容斥原理 真的是神题!!! 定义 f[k] 表示交集大小至少为 k时的方案数怎 ...