4.3.9.3 Параметры команды GRANT
В дополнение к обычной схеме имя пользователя/пароль 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, выданный бюро сертификации "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 protected]";
-
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 protected]";
-
REQUIRE CIPHER cipher
требуется для обеспечения достаточно сложных
шифра и длины ключа. Протокол 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 protected]"
-> AND ISSUER "C=FI, ST=Some-State, L=Helsinki,
"> O=MySQL Finland AB, CN=Tonu Samuel/[email protected]"
-> AND CIPHER "EDH-RSA-DES-CBC3-SHA";
Но не разрешается использовать одни и те же параметры дважды. Смешивать
можно только разные параметры.
Add your own comment.