greenplum连接到mysql_greenplum客户端连接数据库配置及问题

本文介绍了如何配置Greenplum以连接到MySQL数据库,包括pg_hba.conf的设置和用户权限管理。同时,针对连接数据库时可能出现的错误,如密码验证失败,给出了排查和解决方案。
摘要由CSDN通过智能技术生成

一个用户要想成功连接到特定的数据库,不仅需要通过 pg_hba.conf 的检查,还必须要有该数据库上的 CONNECT 权限。如果希望限制哪些用户能够连接到哪些数据库,赋予/撤销 CONNECT 权限通常比在 pg_hba.conf 中设置规则简单。

例20-1里是 pg_hba.conf 记录的一些例子。阅读下文理解不同认证方法的细节。

例20-1. pg_hba.conf 记录的例子

# Allow any user on the local system to connect to any database under

# 允许在本机上的任何用户使用 Unix 域套接字(本地连接的缺省)以任何数据库用户身份连接任何数据库

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

local   all         all                               trust

# 和上面相同,但是使用的是回环的(loopback)TCP/IP 连接

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

host    all         all         127.0.0.1/32          trust

# 和上面一行相同,但是用的是独立的掩码字段

# TYPE  DATABASE    USER        IP-ADDRESS    IP-MASK             METHOD

host    all         all         127.0.0.1     255.255.255.255     trust

# 允许 IP 地址为 192.168.93.x 的任何主机与 "postgres" 数据库相连,

# 用与他们在自己的主机上相同 ident 的用户名标识他自己(通常是他的 Unix 用户名)

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

host    postgres    all         192.168.93.0/24       ident sameuser

# 允许来自主机 192.168.12.10 的用户提供了正确的口令之后与 "postgres" 数据库连接。

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

host    postgres    all         192.168.12.10/32      md5

# 如果前面没有其它 "host" 行,那么下面两行将拒绝所有来自 192.168.54.1 的连接请求(因为前面的记录先匹配)。

# 但是允许来自互联网上其它任何地方的有效的 Kerberos 5 认证的连接。

# 零掩码表示不考虑主机 IP 的任何位。因此它匹配任何主机。

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

host    all         all         192.168.54.1/32       reject

host    all         all         0.0.0.0/0             krb5

# 允许来自 192.168.x.x 的任何用户与任意数据库连接,只要他们通过 ident 检查。

# 但如果 ident 说该用户是 "bryanh" 且他要求以 PostgreSQL 用户 "guest1" 连接,

# 那么只有在 pg_ident.conf 里有 "omicron" 的映射说 "bryanh" 允许以 "guest1" 进行连接时才真正可以进行连接。

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

host    all         all         192.168.0.0/16        ident omicron

# 如果下面是用于本地连接的仅有的三行,那么它们将允许本地用户只和同名数据库连接。

# 只有管理员和 "support" 角色里的成员例外,他们可以连接到任何数据库。

# $PGDATA/admins 文件列出了那些允许与所有 数据库连接的用户名。

# 在所有情况下都需要口令。

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

local   sameuser    all                               md5

local   all         @admins                           md5

local   all         +support                          md5

# 上面最后两行可以合起来写成一行

local   all         @admins,+support                  md5

# 数据库字段也可以使用列表和文件名:

local   db1,db2,@demodbs  all                         md5

连接数据库时候的问题:

Error connecting to the server:FATAL: Password authentication failed for user "postgres"

原因有可能是你建的用户postgres可能仅是系统用户,而不是数据库用户,或是你仅设定了postgres作为系统用户的密码,但在数据库用户密码信息表中有可能该用户的密码是空的,你可以在数据库交互界面下用select * from pg_shadow;查看有无该用户信息,查看有没postgres用户,

若没有,可以用如下命令建立该数据库用户:create user postgres with password 'password';

如果有该用户,但密码为空,可以用如下命令给该用户设置密码:alter user postgres with password 'password';然后再连接数据库,你试试看看行不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值