我有一个使用DavArt dotConnector连接到PostgreSQL数据库的C#项目。 在数据库中,我可以添加角色以在连接字符串中使用它。在连接字符串中使用非拉丁字符PostgreSQL的用户ID
CREATE ROLE "Z111222333";
ALTER ROLE "Z111222333" WITH NOCREATEROLE LOGIN PASSWORD 'md5c6fd41ba62fc5ce98135f0707de385ba';
拉丁字符的名字都是正确的。用户可以连接。
我尝试使用非拉丁字符(例如西里尔字母)创建角色。
CREATE ROLE "ZФРОЛОВМ";
ALTER ROLE "ZФРОЛОВМ" WITH NOCREATEROLE LOGIN PASSWORD '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"
如何使用非拉丁字符的用户ID?
确定密码正确吗? – JMK
对不起。我确信在我的数据库中密码是正确的。但在这个例子中,我犯了一个错误:'ALTER ROLE“ZФРОЛОВМ”WITH NOCREATEROLE LOGIN PASSWORD'md517aa59c10d0061a2d179831df43902f6';' – Roren