`
dbp_cn
  • 浏览: 86379 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

几种客户端连接 PostgreSQL 不输入密码的方法 (转)

 
阅读更多

 平常工作中,有时需要异地连接 PostgreSQL 数据库做些维护,例如异地备份等;
如果备份脚本写在异地机器,备份的时候会弹出密码输入提示,那么脚本就不能后台执
行,这里总结了几种不弹出密码输入提示的方法。


--测试环境
目标库IP:  192.168.1.25/1921 ; 数据库 skytf
客户端IP: 192.168.1.26

--在 192.168.1.26  连接数据库 skytf , 弹出密码提示
postgres@db6-> psql -h 192.168.1.25 -p 1921 skytf skytf
Password for user skytf:

 

方法一:设置环境变量 PGPASSWORD   

    PGPASSWORD  是 PostgreSQL 系统环境变量,在客户端设置这后,那么在客户
端连接远端数据库时,将优先使用这个密码。


--测试
postgres@db6-> export PGPASSWORD=skytf                

postgres@db6-> psql -h 192.168.1.25 -p 1921 skytf skytf
psql (9.1beta3, server 9.0.1)                          
WARNING: psql version 9.1, server version 9.0.         
         Some psql features might not work.            
Type "help" for help.                                  
                                                       
skytf=> \q             

     备注:设置环境变量  PGPASSWORD ,连接数据库不再弹出密码输入提示。 但是从安全性
                方面考虑,这种方法并不推荐,


方法二:设置 .pgpass 密码文件
       
       通过在客户端 /home/postgres 目录下创建隐藏文件 .pgpass ,从而避免连接
 数据库时弹出密码输入提示。

--创建密码文件 .pgpass ( on 客户端 )                               
vi /home/postgres/.pgpass       
                                     
--格式                                                               
hostname:port:database:username:password                             
                                                                     
--范例                                                               
192.168.1.25:1921:skytf:skytf:skytf                                   
                                                                     
--权限                                                               
Chmod 600 .pgpass                  

--连接测试
postgres@db6-> psql -h 192.168.1.25 -p 1921 skytf skytf
psql (9.1beta3, server 9.0.1)
WARNING: psql version 9.1, server version 9.0.
         Some psql features might not work.
Type "help" for help.

skytf=>

      备注:在/home/postgres 目录创建了密码文件 .pgpass 文件后,并正确配置连接信息,
                那么客户端连接数据时会优先使用 .pgass文件, 并使用匹配记录的密码,从而
                不跳出密码输入提示,这种方法比方法一更安全,所以推荐使用创建 .pgpass 文
               件方式。                                

                               
方法三:修改服务端 pg_hba.conf

     修改认证文件 $PGDATA/pg_hba.conf, 添加以下行, 并 reload使配置立即生效。
     
host    skytf          skytf            172.16.3.174/32           trust

[postgres@192_168_1_26 pg_root]$ pg_ctl reload -D $PGDATA
server signaled

--服务端 pg_hba.conf 的配置
# IPv4 local connections:
host    all             all             127.0.0.1/32             trust
host    skytf          skytf            172.16.3.174/32           trust
host    all             all             0.0.0.0/0                md5

--客户端再次连接测试
postgres@db6-> psql -h 192.168.1.25 -p 1921 skytf skytf
psql (9.1beta3, server 9.0.1)
WARNING: psql version 9.1, server version 9.0.
         Some psql features might not work.
Type "help" for help.

skytf=> \q

      备注:修改服务端 pg_hba.conf 并 reload 后,不再弹出密码输入提示。

分享到:
评论

相关推荐

    Android高级应用源码-通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端

    在Android客户端部分,我们需要了解以下几个核心知识点: 1. **网络请求库**:Android客户端通常会使用像`HttpURLConnection`、`Volley`、`OkHttp`或`Retrofit`这样的网络请求库来与服务器通信。在这个项目中,可能...

    Android高级应用源码-通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端.zip

    5. **服务端开发**:服务端可能使用Java(如Spring Boot)、Python(如Django或Flask)或其他后端技术,实现接收登录请求、验证用户名和密码、连接数据库以及返回结果的功能。 6. **数据库设计**:服务端需要一个...

    数据库连接工具

    数据库连接工具,如标题所提及的“Navicat”,是一种强大的数据库管理软件,它允许用户通过直观的图形界面与各种类型的数据库系统进行交互。Navicat Premium 是一款整合了多种数据库管理功能的全面解决方案,支持...

    BSD Operating System Hacks

    - **技巧概述**:此技巧提供了几种高效查找文件的方法,包括使用find命令和其他实用工具。 - **实践方法**:熟练掌握find命令的各种选项,如按名称、类型、大小等条件搜索。 **Hack14:最大化使用grep** - **技巧...

    pdi-ce-stable-JDBC

    这些驱动程序分为几种类型,如 Thin、OCI(Oracle Call Interface)、JDBC-ODBC Bridge等,其中Thin驱动是一种纯Java实现,无需安装Oracle客户端,因此在许多情况下是首选。 在Kettle中,JDBC驱动是通过数据源配置...

    python聊天室,python聊天室项目代码,Python源码.zip.zip

    Python的`sqlite3`库可以方便地与SQLite数据库交互,或使用`pymysql`或`psycopg2`等库与MySQL、PostgreSQL等关系型数据库连接。 10. **日志记录**:为了追踪和调试程序,使用`logging`库记录程序运行过程中的事件和...

    EDB数据库登陆验证易语言源码

    5. 安全性考虑:为了提高安全性,通常不建议在客户端存储明文密码,而是存储其哈希值,并在验证时对比哈希值。此外,使用HTTPS等安全协议可以保护数据在传输过程中的安全性。 通过分析和学习这份源码,开发者不仅...

    手把手教你在Windows上安装ora2pg

    - **Oracle Instant Client**是一个轻量级的客户端库,允许应用程序连接到Oracle数据库服务器而无需安装完整的Oracle客户端。 - **安装Oracle Instant Client**: 1. 访问Oracle官方网站下载适用于Windows的Instant...

    企业即时通讯体统

    7. **实时性**:为了实现即时通信,系统可能利用了推送技术,如WebSocket,允许服务器主动向客户端推送更新,而不仅仅是响应客户端的请求。 8. **并发处理**:由于多个用户可能同时在线交流,服务器必须有效地处理...

    php开发高可用高安全App后端连接文件

    - **用户输入验证**:对所有来自客户端的数据进行严格的验证,避免SQL注入、XSS攻击等问题。 - **使用预编译语句**:利用PDO或MySQLi扩展中的预编译语句功能,有效防止SQL注入攻击。 #### 7. 访问控制与权限管理 - ...

    java写的聊天程序

    客户端会创建Socket连接到服务器端,然后通过输入/输出流发送和接收消息。 2. **多线程**:为了处理并发的用户请求,聊天程序需要使用多线程。主线程通常用于用户界面的更新,而其他线程则负责处理网络通信和数据...

    数据库 ——实例——代码

    2. **数据验证**:在客户端,我们需要验证输入是否为空,用户名和密码是否符合规定格式。在服务器端,我们还需检查这些信息是否存在于数据库中。 3. **安全**:密码应该被加密存储,避免数据泄露。在传输过程中,...

    《Hadoop开发者》第四期

    Hadoop MapReduce框架提供了几种不同的Join实现方法。 **实现方法**: - **Map端Join**:适用于小表Join大表的场景,通过将小表数据加载到内存中,然后在Map阶段完成Join操作。 - **Reduce端Join**:适用于两个大表...

    Login-page:登录页面以及链接到postgres的数据库

    3. 表单验证:可以使用JavaScript进行客户端验证,如检查输入是否为空,或者密码是否达到最低长度要求。 4. 提交处理:当用户点击登录按钮时,表单数据应通过POST方法发送到服务器进行验证。 接下来,我们要连接到...

    自己写的简单的登录系统

    4. **表单验证**:在提交表单前,jQuery可以用来执行客户端验证,如检查输入的用户名和密码是否为空,长度是否符合规定,这能提供即时反馈,减轻服务器负担。 综合以上,这个简单的登录系统展示了一个完整的前后端...

    javaee注册登录.rar

    JavaEE是一种广泛应用于企业级应用开发的技术框架,它基于Java平台,提供了丰富的组件和服务来构建分布式、多层的Web应用程序。在这个"javaee注册登录.rar"压缩包中,我们可以推测包含了一个基本的用户注册和登录...

    第1章PHP概述1

    10. **安全实践**:介绍防止SQL注入、XSS攻击等Web安全问题的方法,以及如何实现密码哈希和验证码。 提供的压缩包中,"第1章 PHP概述.pdf"可能是详细的章节教程,包含了上述所有知识点的详细讲解;"Guest"和"Basic1...

    Go WEB 编程

    - **Go开发工具**:推荐几种常用的IDE(如Visual Studio Code、GoLand)以及编辑器插件,帮助开发者更高效地编写Go代码。 #### 2. Go语言基础 - **你好,Go**:通过简单的“Hello World”程序介绍Go语言的基本语法...

    asp+access2003+vbscript+javascript实现博客网

    在本项目中,ASP被用来处理用户请求,连接数据库,以及生成动态页面内容。 2. **Access 2003**:这是一个关系型数据库管理系统(RDBMS),是Microsoft Office套件的一部分。在博客系统中,Access 2003作为数据存储...

    php中PDO方式实现数据库的增删改查

    持久连接会在服务器端保持一段时间,即使客户端断开连接,也能快速重新连接,提高性能。 在实现增删改查功能时,PDO提供了预处理语句,能够有效地防止SQL注入攻击。预处理语句通过占位符(如`?`或命名占位符如`:...

Global site tag (gtag.js) - Google Analytics