Базы данных AlterOffice-cloud — различия между версиями
(→Настройка сервера PostgreSQL для использования SSL) |
м (→Создание учетной записи на сервере PostgreSQL) |
||
Строка 269: | Строка 269: | ||
Не забудьте инициализировать базу данных с помощью '''initdb'''. | Не забудьте инициализировать базу данных с помощью '''initdb'''. | ||
− | initdb -D /var/pgsql/data/alteroffice | + | initdb -D /var/pgsql/data/alteroffice --locale='ru_RU.utf8' |
Теперь вы можете запустить сервер баз данных: | Теперь вы можете запустить сервер баз данных: |
Версия 14:42, 3 октября 2023
Вам не нужно что-то настраивать дополнительно, если AlterOffice-cloud установлен на одном сервере.
Содержание
- 1 SQLite
- 2 MariaDB
- 2.1 Установка MariaDB
- 2.2 Создание учетной записи на сервере MariaDB
- 2.3 Безопасное соединение с MariaDB
- 2.3.1 Улучшение безопасности установки
- 2.3.2 Сертификаты
- 2.3.3 Создание CA/корневого сертификата
- 2.3.4 Создание сертификата сервера
- 2.3.5 Создание сертификата клиента
- 2.3.6 Как проверить сертификаты?
- 2.3.7 Настройка сервера MariaDB для использования SSL
- 2.3.8 Настройка клиента MariaDB для использования SSL
- 2.3.9 Проверка
- 2.3.10 config.php
- 3 PostgreSQL
- 3.1 Установка PostgreSQL
- 3.2 Создание учетной записи на сервере PostgreSQL
- 3.3 Безопасное соединение с PostgreSQL
- 3.3.1 Улучшение безопасности установки
- 3.3.2 Сертификаты
- 3.3.3 Создание CA/корневого сертификата
- 3.3.4 Создание сертификата сервера
- 3.3.5 Создание сертификата клиента
- 3.3.6 Как проверить сертификаты?
- 3.3.7 Настройка сервера PostgreSQL для использования SSL
- 3.3.8 Настройка клиента PostgreSQL для использования SSL
- 3.3.9 Проверка
- 3.3.10 config.php
- 4 Другие
SQLite
SQLite в основном поддерживается для тестовых установок и не рекомендуется для производственных серверов.
MariaDB
MariaDB/MySQL — канонический выбор для AlterOffice-cloud.
Установка MariaDB
Установка в общем виде:
sudo yum install mariadb-server mariadb
Установка инсталлятором для AlterOffice-cloud:
sudo yum install MariaDB-server MariaDB-client
Создание учетной записи на сервере MariaDB
Запустите в консоли сервера команду:
mysql -u root -p # введите пароль
Ваша учетная запись, и это утверждение применимо к любой учетной записи, могла быть добавлена только с доступом к локальному хосту, что рекомендуется.
Вы можете проверить это с помощью:
SELECT host FROM mysql.user WHERE User = 'alteroffice_user';
Если вы видите результаты только с localhost и 127.0.0.1, вы не можете подключиться из внешнего источника. Если вы видите другие IP-адреса, а не тот, с которого подключаетесь — это тоже показатель.
Вам нужно будет добавить IP-адрес каждой системы, к которой вы хотите предоставить доступ, а затем предоставить привилегии:
CREATE USER 'alteroffice_user'@'MariaDB_client_ip_address' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'alteroffice_user'@'MariaDB_client_ip_address';
Если вы видите %, то это совсем другая проблема: любой удаленный источник. Однако если вы хотите, чтобы какие-либо/все системы подключались через alteroffice_user, используйте подстановочный знак % для предоставления доступа:
CREATE USER 'alteroffice_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'alteroffice_user'@'%';
Наконец, перезагрузите разрешения, и вы сможете иметь удаленный доступ:
FLUSH PRIVILEGES;
Безопасное соединение с MariaDB
Для настроек необходимо, чтобы администратор баз данных был sudoers, т. е. в группе wheel. Чтобы добавить пользователя в группу:
usermod -aG wheel username
Чтобы удалить пользователя из группы, используйте команду gpasswd с опцией -d следующим образом:
gpasswd -d wheel username
Улучшение безопасности установки
mysql_secure_installation
Эта программа позволяет вам повысить безопасность вашей установки MariaDB следующими способами:
- Вы можете установить пароль для учетных записей root.
- Вы можете удалить учетные записи root, доступные за пределами локального хоста.
- Вы можете удалить учетные записи анонимных пользователей.
- Вы можете удалить тестовую базу данных, к которой по умолчанию имеют доступ анонимные пользователи.
Сертификаты
Создайте каталог для сертификатов:
sudo -i mkdir -p /etc/my.cnf.d/ssl/{private,certs} cd /etc/my.cnf.d/ssl
При создании сертификатов необходимо корректно заполнить поля, в часности поле CN/Common Name/Общее имя:
- имя корневого сертификата: MariaDB_CA
- имя сервера сертификата: MariaDB_server
- имя клиента сертификата: MariaDB_client
Создание CA/корневого сертификата
# MariaDB_CA sudo -i /usr/bin/openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/my.cnf.d/ssl/private/MariaDB_CA.key -out /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt
Создание сертификата сервера
Для создания ключа сервера, выполните:
# MariaDB_server sudo -i /usr/bin/openssl req -newkey rsa:4096 -days 365 -nodes -keyout /etc/my.cnf.d/ssl/private/MariaDB_server.key -out /etc/my.cnf.d/ssl/private/MariaDB_server_req.key
Затем обработайте ключ RSA сервера, для этого введите:
sudo -i /usr/bin/openssl rsa -in /etc/my.cnf.d/ssl/private/MariaDB_server.key -out /etc/my.cnf.d/ssl/private/MariaDB_server.key # Вывод: writing RSA key
Наконец, подпишите сертификат сервера, для этого запустите:
sudo -i /usr/bin/openssl x509 -req -in /etc/my.cnf.d/ssl/private/MariaDB_server_req.key -days 365 -CA /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt -CAkey /etc/my.cnf.d/ssl/private/MariaDB_CA.key -set_serial 01 -out /etc/my.cnf.d/ssl/certs/MariaDB_server.crt
Теперь у вас должны появиться дополнительные файлы:
- /etc/my.cnf.d/ssl/certs/MariaDB_server.crt – MariaDB файл сертификата сервера.
- /etc/my.cnf.d/ssl/private/MariaDB_server.key – MariaDB файл ключа сервера.
Вы должны использовать не менее двух файлов на сервере MariaDB и любых других узлах, которые вы собираетесь использовать для трафика кластера/репликации. Эти два файла будут защищать связь на стороне сервера.
Создание сертификата клиента
Клиент mysql, и приложение PHP/Python/Perl/Ruby будет использовать сертификат клиента для защиты соединения клиента. Вы должны установить следующие файлы на всех ваших клиентах, включая веб-сервер. Чтобы создать клиентский ключ, запустите:
# MariaDB_client sudo -i /usr/bin/openssl req -newkey rsa:4096 -days 365 -nodes -keyout /etc/my.cnf.d/ssl/private/MariaDB_client.key -out /etc/my.cnf.d/ssl/private/MariaDB_client_req.key
Затем обработайте ключ клиента RSA, для этого введите
sudo -i /usr/bin/openssl rsa -in /etc/my.cnf.d/ssl/private/MariaDB_client.key -out /etc/my.cnf.d/ssl/private/MariaDB_client.key # Вывод: writing RSA key
Наконец, подпишите сертификат клиента, для этого запустите:
sudo -i /usr/bin/openssl x509 -req -in /etc/my.cnf.d/ssl/private/MariaDB_client_req.key -days 365 -CA /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt -CAkey /etc/my.cnf.d/ssl/private/MariaDB_CA.key -set_serial 01 -out /etc/my.cnf.d/ssl/certs/MariaDB_client.crt
Как проверить сертификаты?
Введите следующую команду для проверки сертификатов, чтобы убедиться, что все было сделано правильно:
/usr/bin/openssl verify -CAfile /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt /etc/my.cnf.d/ssl/certs/MariaDB_server.crt /etc/my.cnf.d/ssl/certs/MariaDB_client.crt # Примеры возможных выводов данных, когда нет ошибок: # /etc/my.cnf.d/ssl/certs/MariaDB_server.crt: OK # /etc/my.cnf.d/ssl/certs/MariaDB_client.crt: OK
Настройка сервера MariaDB для использования SSL
Отредактируйте файл /etc/my.cnf.d/server.cnf следующим образом:
sudo -i vi /etc/my.cnf.d/server.cnf
Нажмите клавишу "i" и вставьте в секции [mysqld] и [galera] следующие настройки:
[mysqld] ### MySQL Server ###
## Защита базы данных с помощью SSL и сертификатов ##
## Нет контроля над используемым уровнем протокола. ##
## mariadb будет использовать TLSv1.0 или более позднюю версию. ##
ssl
ssl-ca=/etc/my.cnf.d/ssl/certs/MariaDB_CA.crt
ssl-cert=/etc/my.cnf.d/ssl/certs/MariaDB_server.crt
ssl-key=/etc/my.cnf.d/ssl/private/MariaDB_server.key
[galera]
bind-address=0.0.0.0
Сохраните и закройте файл, нажав три клавиши по очереди ":wq". Вы можете перезапустить mariadb следующим образом:
sudo -i systemctl restart mariadb systemctl status mariadb --no-pager --full
Настройка клиента MariaDB для использования SSL
Для использования SSL отредактируйте /etc/my.cnf.d/mysql-clients.cnf:
sudo -i vi /etc/my.cnf.d/mysql-clients.cnf
Добавьте в раздел [mysql]:
## MySQL Client Configuration ##
ssl-ca=/etc/my.cnf.d/ssl/certs/MariaDB_CA.crt
ssl-cert=/etc/my.cnf.d/ssl/certs/MariaDB_client.crt
ssl-key=/etc/my.cnf.d/ssl/private/MariaDB_client.key
### This option is disabled by default ###
### ssl-verify-server-cert ###
Сохраните и закройте файл.
Проверка
На клиентском сервере удалим возможные сертификаты и ключи
sudo -i rm -rf /etc/my.cnf.d/ssl/{private,certs} sudo -i mkdir -p /etc/my.cnf.d/ssl/{private,certs}
и получим действующие сертификаты и ключ
sudo -i rsync -arv user@MariaDB_server:/etc/my.cnf.d/ssl/private/MariaDB_client.key /etc/my.cnf.d/ssl/private/MariaDB_client.key sudo -i rsync -arv user@MariaDB_server:/etc/my.cnf.d/ssl/certs/MariaDB_client.crt /etc/my.cnf.d/ssl/certs/MariaDB_client.crt sudo -i rsync -arv user@MariaDB_server:/etc/my.cnf.d/ssl/certs/MariaDB_CA.crt /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt
После ввода в консоли команды
mysql -u alteroffice_user -h MariaDB_server_ip_address -p # введите password
подключится удаленная консоль базы данных и появится приглашение:
MariaDB [(none)]>
Введите:
SHOW VARIABLES LIKE '%ssl%';
Возможный вывод:
+---------------------+----------------------------------------------+ | Variable_name | Value | +---------------------+----------------------------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/my.cnf.d/ssl/certs/MariaDB_CA.crt | | ssl_capath | | | ssl_cert | /etc/my.cnf.d/ssl/certs/MariaDB_server.crt | | ssl_cipher | | | ssl_crl | | | ssl_crlpath | | | ssl_key | /etc/my.cnf.d/ssl/private/MariaDB_server.key | | version_ssl_library | OpenSSL 3.1.1 30 May 2023 | +---------------------+----------------------------------------------+
Или выполните команду:
status
Возможный вывод:
-------------- mysql Ver 15.1 Distrib 10.11.2-MariaDB, for Linux (x86_64) using readline 5.1 Connection id: 4 Current database: Current user: alteroffice_user@0.0.0.0 SSL: Cipher in use is TLS_AES_256_GCM_SHA384 Current pager: stdout Using outfile: Using delimiter: ; Server: MariaDB Server version: 10.11.2-MariaDB AlterOS Protocol version: 10 Connection: 0.0.0.0 via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb3 Conn. characterset: utf8mb3 TCP port: 3306 Uptime: 15 min 33 sec Threads: 1 Questions: 7 Slow queries: 0 Opens: 17 Open tables: 10 Queries per second avg: 0.007 --------------
config.php
Добавьте пути сертификатов и ключа в файл настроек. Они будут использоваться при подключении к базе:
'dbdriveroptions' => [ PDO::MYSQL_ATTR_SSL_CA => '/etc/my.cnf.d/ssl/certs/MariaDB_CA.crt', PDO::MYSQL_ATTR_SSL_KEY => '/etc/my.cnf.d/ssl/private/MariaDB_client.key', PDO::MYSQL_ATTR_SSL_CERT => '/etc/my.cnf.d/ssl/certs/MariaDB_client.crt', PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800', ],
PostgreSQL
PostgreSQL обеспечивает более высокую производительность и в целом имеет мало функциональных отличий от MariaDB/MySQL. Подробную информацию о PostgreSQL можно найти на сайте разработчиков postgresql.org.
Установка PostgreSQL
Если вы хотите запустить свою базу данных на том же хосте, что и установка AlterOffice-cloud, настройте и запустите postgresql.
Установка в общем виде:
yum install libpq postgresql postgresql-private-libs postgresql-server
Установите дополнительный пакет php-pgsql:
yum install php-pgsql
в качестве зависимости и включите соответствующее расширение PHP в файле php.ini:
extension=pdo_pgsql
Создание учетной записи на сервере PostgreSQL
База данных работает от пользователя postgres. Создайте рабочий каталог и настройте права для пользователя:
sudo -i mkdir -p /var/pgsql/data/alteroffice sudo -i chown postgres:postgres /var/pgsql/data/alteroffice
PostgreSQL создает файлы блокировки в каталогах run/postgresql. Исправляем ошибку
FATAL: could not create lock file "/run/postgresql/.s.PGSQL.5432.lock": No such file or directory
sudo -i mkdir -p /run/postgresql /var/run/postgresql sudo -i chown postgres:postgres /run/postgresql /var/run/postgresql
Исправляем ошибку
could not save history to file "/var/lib/postgres/.psql_history": No such file or directory
sudo -i mkdir -p /var/lib/postgres sudo -i touch /var/lib/postgres/.psql_history sudo -i chown postgres:postgres /var/lib/postgres/.psql_history
Дальше переходим в окружение postgres:
sudo -u postgres bash cd /var/pgsql/data/alteroffice
Не забудьте инициализировать базу данных с помощью initdb.
initdb -D /var/pgsql/data/alteroffice --locale='ru_RU.utf8'
Теперь вы можете запустить сервер баз данных:
pg_ctl -D /var/pgsql/data/alteroffice -l /var/pgsql/data/alteroffice/log.txt start
Для дополнительной безопасности в этом сценарии рекомендуется настроить PostgreSQL на прослушивание только локального сокета UNIX:
vi /var/pgsql/data/alteroffice/postgresql.conf listen_addresses =
После этого запустите инструмент CLI PostgreSQL psql:
psql
и создайте пользователя базы данных alteroffice_user и базу данных с тем же именем
CREATE USER alteroffice_user WITH PASSWORD 'password'; CREATE DATABASE alteroffice_user TEMPLATE template0 ENCODING 'UNICODE'; ALTER DATABASE alteroffice_user OWNER TO alteroffice_user; GRANT ALL PRIVILEGES ON DATABASE alteroffice_user TO alteroffice_user; \q
password — это заполнитель для пароля пользователя базы данных alteroffice_user, который вам нужно выбрать.
Безопасное соединение с PostgreSQL
Для безопасного запуска AlterOffice-cloud с базой PostgreSQL предполагается, что только AlterOffice-cloud использует эту базу данных и, следовательно, только один пользователь имеет доступ к базе данных. Для дополнительных сервисов и пользователей мы рекомендуем создать отдельную базу данных или экземпляр PostgreSQL.
Улучшение безопасности установки
Для повышения уровня безопасности системы в PostgreSQL:
- для работы не требуются права суперпользователя
- серверу доступен один каталог с данными кластера базы данных /var/pgsql/data/alteroffice.
- встроена поддержка SSL для шифрования трафика между клиентом и сервером, включается в конфигурационном файле /var/pgsql/data/alteroffice/postgresql.conf
ssl = on
Сертификаты
Создайте каталог для сертификатов:
mkdir -p /var/pgsql/data/alteroffice/ssl/{private,certs} cd /var/pgsql/data/alteroffice/ssl
При создании сертификатов необходимо корректно заполнить поля, в часности поле CN/Common Name/Общее имя:
- имя корневого сертификата: PostgreSQL_CA
- имя сервера сертификата: PostgreSQL_server
- имя клиента сертификата: PostgreSQL_client
Создание CA/корневого сертификата
# PostgreSQL_CA /usr/bin/openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_CA.key -out /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt
Создание сертификата сервера
Для создания ключа сервера, выполните:
# PostgreSQL_server /usr/bin/openssl req -newkey rsa:4096 -days 365 -nodes -keyout /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server.key -out /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server_req.key
Затем обработайте ключ RSA сервера, для этого введите:
/usr/bin/openssl rsa -in /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server.key -out /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server.key # Вывод: writing RSA key
Наконец, подпишите сертификат сервера, для этого запустите:
/usr/bin/openssl x509 -req -in /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server_req.key -days 365 -CA /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt -CAkey /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_CA.key -set_serial 01 -out /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_server.crt
Теперь у вас должны появиться дополнительные файлы:
- /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_server.crt – PostgreSQL файл сертификата сервера.
- /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server.key – PostgreSQL файл ключа сервера.
Вы должны использовать не менее двух файлов на сервере PostgreSQL и любых других узлах, которые вы собираетесь использовать для трафика кластера/репликации. Эти два файла будут защищать связь на стороне сервера.
Установите биты доступа файлов, так как сервер не примет файлы, если разрешения будут более либеральными:
chmod og-rwx /var/pgsql/data/alteroffice/ssl -R
Создание сертификата клиента
Клиент PostgreSQL, и приложение PHP/Python/Perl/Ruby будет использовать сертификат клиента для защиты соединения клиента. Вы должны установить следующие файлы на всех ваших клиентах, включая веб-сервер. Чтобы создать клиентский ключ, запустите:
# PostgreSQL_client /usr/bin/openssl req -newkey rsa:4096 -days 365 -nodes -keyout /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key -out /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client_req.key
Затем обработайте ключ клиента RSA, для этого введите
/usr/bin/openssl rsa -in /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key -out /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key # Вывод: writing RSA key
Наконец, подпишите сертификат клиента, для этого запустите:
/usr/bin/openssl x509 -req -in /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client_req.key -days 365 -CA /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt -CAkey /var/pgsql/data/alteroffice/ssl/private/PostgreSQL_CA.key -set_serial 01 -out /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt
Как проверить сертификаты?
Введите следующую команду для проверки сертификатов, чтобы убедиться, что все было сделано правильно:
/usr/bin/openssl verify -CAfile /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_server.crt /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt # Примеры возможных выводов данных, когда нет ошибок: # /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_server.crt: OK # /var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt: OK
Настройка сервера PostgreSQL для использования SSL
Отредактируйте файл /var/pgsql/data/alteroffice/postgresql.conf следующим образом:
vi /var/pgsql/data/alteroffice/postgresql.conf
Нажмите клавишу "i" и вставьте следующие настройки:
### PostgreSQL Server ###
## Защита базы данных с помощью SSL и сертификатов ##
ssl = on
# сертификаты доверенных ЦС позволяют проверить, что сертификат клиента подписан доверенным центром сертификации
ssl_ca_file = '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt'
# сертификат сервера отправляется клиенту для идентификации сервера
ssl_cert_file = '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_server.crt'
# закрытый ключ сервера подтверждает, что сертификат сервера был передан его владельцем
ssl_key_file = '/var/pgsql/data/alteroffice/ssl/private/PostgreSQL_server.key'
# сертификаты, отозванные центрами сертификации, сертификат клиента должен отсутствовать в этом списке
# ssl_crl_file
# Настройте адрес или имя узла сервера
listen_address = '0.0.0.0'
Сохраните и закройте файл, нажав три клавиши по очереди ":wq".
Имя клиента, инициировавшего подключение, может не совпадать с именем пользователя базы данных, под которым он хочет подключиться. Добавляем строки в файл pg_ident.conf:
vi /var/pgsql/data/alteroffice/pg_ident.conf
# MAPNAME SYSTEM-USERNAME PG-USERNAME altermap PostgreSQL_client alteroffice_user
Аутентификация клиентов управляется конфигурационным файлом, который традиционно называется pg_hba.conf. HBA расшифровывается как host-based authentication — аутентификации по имени узла.
vi /var/pgsql/data/alteroffice/pg_hba.conf
Укажите адрес или имя узла вашего клиента:
#тип база пользователь адрес метод-аутентификации [параметры-аутентификации] hostssl alteroffice_user alteroffice_user 0.0.0.0 cert map=altermap
Вы можете перезапустить PostgreSQL следующим образом:
pg_ctl -D /var/pgsql/data/alteroffice -l /var/pgsql/data/alteroffice/log.txt restart
Настройка клиента PostgreSQL для использования SSL
Подключение клиента к серверу выполняется командой:
psql " \ host = 0.0.0.0 \ port = 5432 \ dbname = alteroffice_user \ user = alteroffice_user \ sslmode = require \ sslrootcert = '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt' \ sslcert = '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt' \ sslkey = '/var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key' \ "
где 0.0.0.0 необходимо заменить на адрес сервера
Проверка
создадим папки для SSL:
sudo -i mkdir -p /etc/pgsql/ssl/{certs,private}
получим действующие сертификаты и ключ:
sudo -i rsync -arv postgres@PostgreSQL_server:/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt /etc/pgsql/ssl/certs/PostgreSQL_CA.crt sudo -i rsync -arv postgres@PostgreSQL_server:/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt /etc/pgsql/ssl/certs/PostgreSQL_client.crt sudo -i rsync -arv postgres@PostgreSQL_server:/var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key /etc/pgsql/ssl/private/PostgreSQL_client.key
Библиотека клиента в целях безопасности требует, чтобы доступ к сертификатам был только у членов группы
sudo -i chown postgres:postgres /etc/pgsql/ssl -R sudo -i chmod 600 /etc/pgsql/ssl/*/*
Проверка соединения на python
import sqlalchemy print(sqlalchemy.__version__) DATABASE_URI = "postgresql://alteroffice_user:alteroffice_user@192.168.0.101:5432/alteroffice_user" # sqlalchemy 1.4+ uses postgresql:// instead of postgres:// ssl_mode = "?sslmode=require&sslcert=/etc/pgsql/ssl/certs/PostgreSQL_client.crt&sslkey=/etc/pgsql/ssl/private/PostgreSQL_client.key&sslrootcert=/etc/pgsql/ssl/certs/PostgreSQL_CA.crt" DATABASE_URI += ssl_mode engine = sqlalchemy.create_engine(DATABASE_URI) engine.connect() print(engine)
config.php
$dbdriveroptions = array( 'sslmode' => 'require', 'sslrootcert' => '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_CA.crt', 'sslcert' => '/var/pgsql/data/alteroffice/ssl/certs/PostgreSQL_client.crt', 'sslkey' => '/var/pgsql/data/alteroffice/ssl/private/PostgreSQL_client.key', );
Другие
В списке поддерживаемых баз данных также есть база данных Oracle. Любые базы данных, использующие язык структурированных запросов SQL, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных возможно использовать.