поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    4.3.9.4. Параметры команды 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, выданный бюро сертификации (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.

      Порядок опций не имеет значения, но ни одна опция не может быть указана дважды.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100