• Postgresql连接 Joe


    一、正确的方式连接到了正确的数据库
      如果想知道是否以正确的方式连接到了正确的数据库,我们可以执行下面给出的命令加以验证:
      SELECT inet_server_port(); 该命令显示服务器所侦听的端口号。
      SELECT current_database(); 显示当前的数据库。
      SELECT current_user; 该命令显示当前的userid。
      SELECT inet_server_addr(); 显示接受连接的服务器的IP地址。
      很明显,用户的口令是无法以普通SQL进行访问的。
    二、远程访问数据库
      为安全起见,PostgreSQL的许多版本 默认时禁用了其远程访问功能。那么,如何启用该功能呢?
      为了启用网络或者远程访问功能,我们需要在postgresql.conf文件中添加或者编辑下列内容:
      listen_addresses = '*'
      在pg_hba.conf的第一行添加如下内容,以便允许所有用户通过加密口令来访问所有数据库:
      # TYPE DATABASE USER CIDR-ADDRESS METHOD
      host all all 0.0.0.0/0 md5
      下面我们对上面的内容做简单说明。参数listen_addresses指定了要侦听的IP地址。这样的话,即使每个系统上有多个网卡也没关系了。在大多数情况下,我们会接受所有网卡上的连接,所以可以使用“*”,它表示所有IP地址。
      pg_hba.conf中存放有一组基于主机的认证规则。每条规则会被逐条应用,直到找到一条符合的,就能通过认证;或者访问被reject方法显式拒绝。上面的示例中给出的规则表示,所有远程连接,无论用户为谁,无论访问那个数据库,也无论来自哪个IP地址,都要求通过md5加密的口令进行认证。
      Type = host表示远程连接。Database = all 表示所有数据库。其他名字要求严格匹配,除非带有前缀+,这个前缀表示组角色,而非某个用户。我们还可以规定一个由逗号分隔的用户表,或者使用@ symbol 来包含一个存放用户表的文件。我们还可以使用sameuser,这样的话只有当用户名和数据库名称一致时才匹配。
      User = all 表示所有用户。其他名字要求严格匹配,除非带有前缀+,这个前缀表示组角色,而非某个用户。我们还可以规定一个由逗号分隔的用户表,或者使用@ symbol来包含一个存放用户表的文件。
      CIDR-ADDRESS 由两部分组成,即IP地址/子网掩码。子网掩码规定了IP地址中前面哪些位表示网络编号。这里/0表示IP地址中没有表示网络编号的位,这样的话全部的IP地址都匹配,例如192.168.0.0/24表示匹配前24位,所以它匹配任何192.168.0.x形式的IP地址。我们还可以使用samenet或者samehost。
      这里一定要注意,千万不要使用password设置,这样会允许明文形式的口令。
      Method = trust 实际上表示无需认证。其他的认证方法包括GSSAPI、SSPI、LDAP、RADIUS和PAM。此外,我们还可以使用SSL连接PostgreSQL,这时用客户端的SSL证书进行认证。
  • 相关阅读:
    防止表单重复提交
    tp5中的配置机制
    PHP remove,empty和detach区别
    jquery data方法
    webstrom使用记录
    input checkbox问题和li里面包含checkbox
    【转】HTML中A标签与click事件的前世今生
    jquery toggle方法
    webstore+nodejs
    web storm使用和配置
  • 原文地址:https://www.cnblogs.com/Smart_Joe/p/2548681.html
Copyright © 2020-2023  润新知