enmotech / enmotech-docker-opengauss

Ennotech openGauss Docker Image
GNU General Public License v3.0
46 stars 25 forks source link

更改为sha256后不生效 #13

Closed jifengnan closed 3 years ago

jifengnan commented 3 years ago

我到 docker 容器的 /var/lib/opengauss/data 里 把 pg_hba.conf 改成了 sha256: host all all 0.0.0.0/0 sha256 把 postgresql.conf 中的 password_encryption_type 改成了 2: password_encryption_type = 2 但是启动后,还是用 MD5 认证。

kamusis commented 3 years ago

请问您是怎么启动的? docker run是启动新的容器。 需要用docker start启动之前你修改过的容器。 另外, 您是怎么验证是用sha256认证还是MD5认证的?

-- Kamus @.> 在 2021年8月22日 +0900 13:28,jifengnan @.>,写道:

我到 docker 容器的 /var/lib/opengauss/data 里 把 pg_hba.conf 改成了 sha256: host all all 0.0.0.0/0 sha256 把 postgresql.conf 中的 password_encryption_type 改成了 2: password_encryption_type = 2 但是启动后,还是用 MD5 认证。 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

jifengnan commented 3 years ago

启动是 docker start 验证是通过数据库驱动,打断点,检测服务器端发回的标志位。 无论是 rust 驱动 还是 JDBC 驱动 返回的鉴权标志位都是 5 (表示MD5方式)

kamusis commented 3 years ago

能把您整个操作过程发给我们吗?我们尝试复现一下。特别是最后断点判断仍然不是SHA256验证的部分。

-- Kamus @.> 在 2021年8月22日 +0900 20:58,jifengnan @.>,写道:

启动是 docker start 验证是通过数据库驱动,打断点,检测服务器端发回的标志位。 — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

jifengnan commented 3 years ago

JAVA 用的比较多,这里提供个JAVA的驱动: https://gitee.com/opengauss/openGauss-connector-jdbc/tree/master/pgjdbc 随便跑一个单元测试,比如 org.postgresql.test.jdbc2.PreparedStatementTest#getNumberOfServerPreparedStatements 打断点在 org.postgresql.core.v3.ConnectionFactoryImpl#doAuthentication 的 539 行,最终会走入 MD5 认证

saxisuer commented 3 years ago

可以在数据库中执行 SHOW password_encryption_type; 看一下参数修改是否生效了么?

saxisuer commented 3 years ago

@jifengnan 我这边复现了你的场景,如果你更改了加密方式并且加密方式生效了 需要创建新的用户 新的用户通过SHA256 加密 登陆认证也会走SHA256的逻辑.

kamusis commented 3 years ago

我到 docker 容器的 /var/lib/opengauss/data 里 把 pg_hba.conf 改成了 sha256: host all all 0.0.0.0/0 sha256 把 postgresql.conf 中的 password_encryption_type 改成了 2: password_encryption_type = 2 但是启动后,还是用 MD5 认证。

请在postgresql.conf中检查一下是否存在了多个password_encryption_type,导致配置被覆盖

jifengnan commented 3 years ago

@saxisuer 感谢,我试试