4.3.9.3 Параметры команды GRANT
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=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";
Разрешается также сочетать эти методы друг с другом, например, таким образом: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";
Но не разрешается использовать одни и те же параметры дважды. Смешивать можно только разные параметры.