Базы данных AlterOffice-cloud

Материал из Wiki AlterOS
Перейти к: навигация, поиск

Вам не нужно что-то настраивать дополнительно, если AlterOffice-cloud установлен на одном сервере.

Содержание

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

   '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, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных возможно использовать.