MySQL は、通常のユーザ名とパスワードのスキームに加え、X509 証明書属性をチェックすることができます。通常のオプションもすべて必要です(ユーザ名、パスワード、IP アドレスマスク、データベース/テーブル名)。
接続の制限にはいくつかのシナリオがあります。
SSL または X509 オプションがない場合、ユーザ名とパスワードが正しければ、暗号化および非暗号化すべての接続が許可される。
REQUIRE SSL
オプションは、サーバが SSL
暗号化接続のみを許可するように制限する。
注意: 非 SSL 接続を許可する ACL
レコードがある場合、このオプションは除外できる。
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret' REQUIRE SSL;
REQUIRE X509
は、クライアントに有効な証明書が必要なことを意味するが、どの証明書、発行者、およびサブジェクトでなければいけないという指定はない。
CA
証明書の署名を確認できれば、それで十分である。
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret' REQUIRE X509;
REQUIRE ISSUER 'issuer'
は、接続試行に制限を加える。
クライアントは、CA 'issuer'
によって発行された有効な X509
証明書を提示する必要がある。 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'
では、サブジェクト 'subject'
が有効な X509
証明書がクライアントに必要となる。クライアントが有効な証明書を提示しても、'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 以降、REQUIRE
オプション間の AND
キーワードは任意になっている。
オプションはどんな順序でも指定できるが、同じオプションを 2 回指定することはできない。
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.