我在C#中使用DavArt dotConnector连接到PostgreSQL数据库。 在数据库中,我可以添加角色以在连接字符串中使用它。
创造角色“Z111222333”;
ALTER ROLE“Z111222333”与NOCREATEROLE登录密码'md5c6fd41ba62fc5ce98135f0707de385ba';
名字中的拉丁字符全部正确。用户可以连接 我尝试用非拉丁字符(例如西里尔字母)创建角色。
创造角色“ZФРОЛОВМ”;
ALTER ROLE“ZФРОЛОВМ”与NOCREATEROLE登录密码'md5b4b194033aab1f2d6dbd275736f1b029';
在这种情况下,用户无法连接。例外:“错误: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中使用非拉丁字符?
答案 0 :(得分:0)
在PostgreSQL中最好避免在用户名(和数据库名称)中使用非ASCII字符。在初始连接设置和身份验证期间,字符编码转换未激活,连接成功将取决于您是否恰好以正确的编码发送正确的字节。我不知道你的问题是否存在问题,但这并不会让我感到惊讶,如果还有其他类似的问题,我也不会感到惊讶。