Аутентификация Mariadb Kerberos в C ++ - PullRequest
1 голос
/ 03 августа 2020

Экземпляр MariaDB оснащен аутентификацией Kerberos (GSSAPI Authentication) и использует командную строку и вход при наличии действующего билета.

Для подключения к MariaDB на C ++ мы использовали соединитель MariaDB / C версию 3.1.9, установив пакеты MariaDB-common и MariaDB-devel. В настоящее время аутентификация выполняется по имени пользователя и паролю:

#include <iostream>
#include <mysql/mysql.h>
#include <string>
...
    try {
        // Format a MySQL object
        conn = mysql_init(NULL);

        // Establish a MariaDB connection
        if (!mysql_real_connect(
                conn,
                MY_HOSTNAME, MY_USERNAME,
                MY_PASSWORD, MY_DATABASE,
                MY_PORT_NO, MY_SOCKET, MY_OPT)) {
            cerr << mysql_error(conn) << endl;
            return false;
        }

Но мне нужен способ использования аутентификации Kerberos в нашем приложении C ++, однако я не могу найти ни одного связанного документа или примера. Итак, мой вопрос: есть ли способ подключить MariaDB с использованием аутентификации Kerberos в C ++?

1 Ответ

0 голосов
/ 04 августа 2020

Клиент не может принудительно выполнить аутентификацию через Kerberos / GSSAPI.

Если GSSAPI поддерживается на сервере и правильно настроен, сервер будет согласовывать с клиентом, что аутентификация будет происходить через GSSAPI. Это происходит во время рукопожатия (или при отправке команды COM_CHANGE_USER).

Помимо конфигурации GSSAPI на сервере, вам также необходимо указать, что пользователь должен быть идентифицирован через GSSAPI:

CREATE USER username@hostname IDENTIFIED VIA gssapi

Дополнительную информацию можно найти в базе знаний MariaDB .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...