Использование нелатинских символов в строке подключения UserID для PostgreSQL

У меня есть проект на С#, использующий DavArt dotConnector для подключения к базе данных PostgreSQL. В базе данных я могу добавить роль, чтобы использовать ее в строке подключения.

СОЗДАТЬ РОЛЬ "Z111222333";
ИЗМЕНИТЬ РОЛЬ "Z111222333" С ПАРОЛЕМ ДЛЯ ВХОДА NOCREATEROLE 'md5c6fd41ba62fc5ce98135f0707de385ba';

С латинскими буквами в названии все идет как надо. Пользователь может подключиться.
Я пытаюсь создать роль с нелатинскими символами (например, с кириллицей).

СОЗДАТЬ РОЛЬ "ZФРОЛОВМ";
ИЗМЕНИТЬ РОЛЬ "ZФРОЛОВМ" С ПАРОЛЕМ ДЛЯ ВХОДА NOCREATEROLE 'md5b4b194033aab1f2d6dbd275736f1b029';

В этом случае пользователь не может подключиться. Исключение: "Ошибка: 28P01: ошибка аутентификации пароля для пользователя "ZFROLOVM"".

Соединитель: 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?


person Roren    schedule 30.10.2013    source источник
comment
Вы уверены, что пароль правильный?   -  person JMK    schedule 30.10.2013
comment
Извините. Я уверен, что в моей базе данных правильный пароль. Но в этом примере у меня ошибка: ALTER ROLE "ZФРОЛОВМ" WITH NOCREATEROLE LOGIN PASSWORD 'md517aa59c10d0061a2d179831df43902f6';   -  person Roren    schedule 31.10.2013


Ответы (1)


В PostgreSQL лучше избегать использования символов, отличных от ASCII, в именах пользователей (и именах баз данных). Во время первоначальной настройки соединения и аутентификации преобразование кодировки символов неактивно, и успех соединения будет зависеть от того, отправите ли вы правильные байты в правильной кодировке. Я не знаю, является ли это проблемой в вашем случае, но меня это не удивит, и я не удивлюсь, если есть другие подобные проблемы.

person Peter Eisentraut    schedule 30.10.2013
comment
Спасибо. Я буду использовать это как наилучшую практику. - person Roren; 31.10.2013