В дополнение к обычной схеме имя пользователя/пароль MySQL может производить проверку атрибутов сертификата X509. Для этого необходимы также все обычные параметры (имя пользователя, пароль, маска IP-адреса, имя базы данных/таблицы).
Существует несколько возможностей ограничить соединения:
Если не указано никаких параметров SSL/X509, а имя пользователя и пароль указаны правильно, то разрешены все виды шифрованных и нешифрованных соединений.
Параметр REQUIRE SSL
позволяет серверу
устанавливать только
зашифрованные при помощи
протокола SSL соединения.
Обратите внимание, что этот
параметр может быть
неприемлемым, если существуют
записи ACL, разрешающие не-SSL
соединения.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost->IDENTIFIED BY "goodsecret" REQUIRE SSL;
REQUIRE X509 означает, что
у клиента должен быть
действительный сертификат, но
мы не требуем наличия
определенного сертификата,
сертификата определенной фирмы
или темы. Единственное
ограничение - подпись должна
поддаваться проверке при
помощи одного из сертификатов
бюро сертификации.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost->IDENTIFIED BY "goodsecret" REQUIRE X509;
REQUIRE ISSUER "issuer" делает
требования по соединению более
определенными: теперь клиент
должен предоставить
действительный сертификат X509,
выданный бюро сертификации (CA)
"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";
REQUIRE SUBJECT "subject"
требует наличия у клиента
действительного сертификата 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";
REQUIRE CIPHER "cipher"
требуется для обеспечения
достаточно сложных шифра и
длины ключа. Протокол SSL сам по
себе может быть ненадежным
из-за использования старых
алгоритмов с короткими ключами
шифрования. Воспользовавшись
этим параметром, мы можем
указать определенный метод
шифрования, разрешающий
соединение.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost->IDENTIFIED BY "goodsecret"->REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
Разрешается также сочетать
SUBJECT, ISSUER,
CIPHER в REQUIRE,
например, так:
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";
Начиная с MySQL 4.0.4, слово
AND необязательно в
опциях REQUIRE.
Порядок опций не имеет значения, но ни одна опция не может быть указана дважды.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
