Мне нужно создать аутентификацию SQL для моей установки SOGo, и я считаю, что настроил все в соответствии с документацией. Они хотят, чтобы я сделал следующее:
Сначала они хотят, чтобы я создал пользователя базы данных sogo
и схему базы данных (вот раздел: https://sogo.nu/files/ docs / SOGoInstallationGuide.html # _database_configuration ) с помощью следующих команд:
su - postgres
createuser --no-superuser --no-createdb --no-createrole \
--encrypted --pwprompt sogo
(specify “sogo” as password)
createdb -O sogo sogo
Затем добавьте следующую строку в файл postgresql pg_hba.conf
:
host sogo sogo 127.0.0.1/32 md5
И, наконец, измените следующие строки в sogo.conf:
SOGoProfileURL =
"postgresql://sogo:sogo@localhost:5432/sogo/sogo_user_profile";
OCSFolderInfoURL =
"postgresql://sogo:sogo@localhost:5432/sogo/sogo_folder_info";
OCSSessionsFolderURL =
"postgresql://sogo:sogo@localhost:5432/sogo/sogo_sessions_folder";
Затем для актуальной аутентификации мне нужно настроить SOGoUserSources следующим образом:
SOGoUserSources =
(
{
type = sql;
id = directory;
viewURL = "postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_view";
canAuthenticate = YES;
isAddressBook = YES;
userPasswordAlgorithm = md5;
}
);
что я тоже сделал, но, к сожалению, я не уверен, как затем создать база данных и таблица пользователей, для работы с этим auth.
Я создал базу данных sogo, владельцем которой является sogo, вот мой список баз данных:
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sogo | sogo | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sogocreatedb | sogo | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
Затем я создал таблицу sogo_view
, так как я думал, что это то, что я должен делать. Вот список отношений:
List of relations
Schema | Name | Type | Owner
--------+-----------+-------+-------
public | sogo_view | table | sogo
Наконец, я создал пользователя в таблице:
c_uid | c_name | c_password | c_cn | mail
---------+---------+---------------+---------+-------------------------
Luciano | Luciano | Something | Luciano | luciano@something.cz
Но соединение все еще не происходит, есть ли у кого-нибудь опыт работы с этим?
Какое именно сообщение об ошибке выбрасывается программой при попытке соединения?
Обращаю ваше внимание на то, что у вас
sogocreatedb | sogo | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
в вашем списке баз данных. Вы собирались создать базу данных sogocreatedb
?
В столбце пароля вы должны установить MD5 вашего пароля. Вставьте запись вроде этого:
INSERT INTO sogo_view VALUES (
'Luciano', 'Luciano', MD5('Something'),
'Luciano', 'luciano@something.cz');
В вики Debian есть инструкция, как настроить базу данных и вставить логины. Это для mysql, но работает и для postgres. Просто убедитесь, что вы установили для db и владельца таблицы значение sogo
, что вы, по-видимому, и так сделали.
В примере с debian таблица пользователей называется sogo_users
вместо sogo_view
. Поэтому либо переименуйте его в sogo_view
в примере ниже, либо измените конфигурацию SOGo viewURL
на ... / sogo_users
. Вот исходный пример debian:
CREATE TABLE sogo_users (
c_uid VARCHAR(10) PRIMARY KEY,
c_name VARCHAR(10),
c_password VARCHAR(32),
c_cn VARCHAR(128),
mail VARCHAR(128));
INSERT INTO sogo_users VALUES ('paul', 'paul', MD5('zxc'), 'Paul Example', 'paul@example.com');
INSERT INTO sogo_users VALUES ('piet', 'piet', MD5('zxc'), 'Piet Jansen', 'piet@example.com');
INSERT INTO sogo_users VALUES ('klaas', 'klaas', MD5('zxc'), 'Klaas van der Zee', 'klaas@example.com');
Ссылка: https://wiki.debian.org/SOGo