
22.09.2008
Данная структура представляет дескриптор соединения с базой данных.
Используется почти во всех функциях MySQL.
Эта структура содержит результат запроса, возвратившего строки (
,
,
,
). Возвращенная из запроса информация далее в этом
разделе называется результирующим набором данных.
Является ''типобезопасным'' представлением данных одной строки.
В настоящее время этот тип реализован как массив строк с фиксированным
количеством байтов (их нельзя трактовать как строки с нулевым символом в
конце, если величины полей могут содержать двоичные данные, поскольку они
могут содержать ноль байтов). Строки можно получить вызовом функции
.
Данная структура содержит информацию об отдельном поле таблицы: имя поля,
тип и его размер. Элементы данной структуры детально описаны в этом
разделе ниже. Для каждого поля можно получить структуру
,
последовательно вызывая функцию
. Величины полей не
являются частью данной структуры, они содержатся в структуре
.
''Типобезопасное'' представление позиции поля в списке полей MySQL.
(используется функцией
). Позиции представляют собой
номера полей внутри строки, причем нумерация начинается с нуля.
Данный тип используется для возврата количества строк, а также в функциях
,
. Этот тип
обеспечивает диапазон изменений величин от 0 до 1.84e19. Может не работать
в некоторых системах при выводе величины типа
. Для вывода
подобной величины следует преобразовать ее в тип
. Пример:
printf (Количество строк: %lu\n", (unsigned long) mysql_num_rows(result));
Имя данного поля, заданное строкой с нулевым символом в конце.
Имя таблицы, содержащей это поле, если оно невычисляемое. Для полей,
получаемых в результате вычислений, величина
представляет собой
пустую строку.
Значение по умолчанию этого поля, заданное строкой с нулевым символом в
конце. Задается только при использовании функции
.
Тип данного поля. Величина
для проверки, является ли тип поля
числовым. В макросе
и, если поле
имеет числовой тип, будет возвращено значение
Размер данного поля в том виде, в каком он указан в определении таблицы.
Максимальный размер данного поля в результирующем наборе данных (длина
самой большой величины поля для строк в текущем результирующем наборе
данных). При использовании
данная переменная содержит максимальную длину для данного поля. При
использовании
значение этой переменной равно нулю.
Различные двоичные флаги для данного поля. Величина
,
,
не
рекомендуется, поскольку они указывают скорее тип поля, чем атрибут этого
типа. Вместо этого более предпочтительно определять тип поля описанным
выше способом
,
,
. Следующий пример
иллюстрирует типичное использование величины
Возвращает число десятичных знаков для числовых полей.
Рубрики: Без рубрики |

22.09.2008
В дополнение к обычной схеме имя пользователя/пароль MySQL может
производить проверку атрибутов сертификата X509. Для этого необходимы
также все обычные параметры (имя пользователя, пароль, маска IP-адреса,
имя базы данных/таблицы).
Если не указано никаких параметров SSL/X509, а имя пользователя и
пароль указаны правильно, то разрешены все виды шифрованных и
нешифрованных соединений.
позволяет серверу устанавливать только
зашифрованные при помощи протокола SSL соединения. Обратите внимание,
что этот параметр может быть неприемлемым, если существуют записи ACL,
разрешающие не-SSL соединения.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret" REQUIRE SSL;
означает, что у клиента должен быть действительный
сертификат, но мы не требуем наличия определенного сертификата,
сертификата определенной фирмы или темы. Единственное ограничение -
подпись должна поддаваться проверке при помощи одного из сертификатов
бюро сертификации.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret" REQUIRE X509;
issuer делает требования по соединению более
определенными: теперь клиент должен предоставить действительный
сертификат X509, выданный бюро сертификации "issuer". Использование
сертификатов X509 всегда означает применение шифрования, поэтому
параметр "SSL" больше не нужен.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret"
-> REQUIRE ISSUER "C=FI, ST=Some-State, L=Helsinki,
"> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com";
требует наличия у клиента действительного
сертификата X509 с содержащейся в нем темой "subject". Если у клиента
есть действительный сертификат, но другой "subject", то соединение не
будет установлено.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret"
-> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
"> O=MySQL demo client certificate,
"> CN=Tonu Samuel/Email=tonu@mysql.com";
требуется для обеспечения достаточно сложных
шифра и длины ключа. Протокол SSL сам по себе может быть ненадежным
из-за использования старых алгоритмов с короткими ключами шифрования.
Воспользовавшись этим параметром, мы можем указать определенный метод
шифрования, разрешающий соединение.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret"
-> REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
Разрешается также сочетать эти методы друг с другом, например, таким
образом:
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost
-> IDENTIFIED BY "goodsecret"
-> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
"> O=MySQL demo client certificate,
"> CN=Tonu Samuel/Email=tonu@mysql.com"
-> AND ISSUER "C=FI, ST=Some-State, L=Helsinki,
"> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com"
-> AND CIPHER "EDH-RSA-DES-CBC3-SHA";
Но не разрешается использовать одни и те же параметры дважды. Смешивать
можно только разные параметры.
Рубрики: Без рубрики |