0

我有一个 C# 项目,使用 DavArt dotConnector 连接到 PostgreSQL 数据库。在数据库中,我可以添加角色以在连接字符串中使用它。

创建角色“Z111222333”;
使用 NOCREATEROLE 登录密码“md5c6fd41ba62fc5ce98135f0707de385ba”更改角色“Z111222333”;

在名称中使用拉丁字符一切正常。用户可以连接。
我尝试使用非拉丁字符(例如西里尔文)创建角色。

创建角色“ZФРОЛОВМ”;
使用 NOCREATEROLE 登录密码“md5b4b194033aab1f2d6dbd275736f1b029”更改角色“ZФРОЛОВМ”;

在这种情况下,用户无法连接。例外:“错误:28P01:用户“ZФРОЛОВМ”的密码验证失败”。

连接器:Devart dotConnector for PostgreSQL 6.5
数据库:PostgreSQL 9.1
连接字符串:"User Id=ZФРОЛОВМ;Password=A1E0476879CAB2A76CC22C80BBF364; Host=localhost;Database=testDB;Unicode=True;Persist Security Info=True;Schema=mir"

如何在 UserId 中使用非拉丁字符?

4

1 回答 1

0

在 PostgreSQL 中最好避免在用户名(和数据库名)中使用非 ASCII 字符。在初始连接设置和身份验证期间,字符编码转换未激活,连接的成功将取决于您是否碰巧以正确的编码发送了正确的字节。我不知道这是否是您的问题,但这不会让我感到惊讶,如果还有其他类似的问题也不会让我感到惊讶。

于 2013-10-30T17:11:04.390 回答