web-dev-qa-db-ja.com

すべてのリモートユーザーにSSLを要求する方法

複数のリモートユーザー('joecool'@'192.168.1.2'という形式のユーザー)を持つMySQLシステムを想定します。すべてのリモートユーザーに対してREQUIRE SSLに使用できるSQLステートメントはありますか?

シングルユーザーコマンドは次のとおりです。

GRANT USAGE ON *.* TO 'joecool'@'192.168.1.2' REQUIRE SSL;

phpMyAdmin はユーザーの作成または変更時にREQUIRE SSLフラグをサポートしないため、「すべてのユーザー」バージョンを使用すると特に便利です。

26
docwhat

Honzaによる(以前の)受け入れられた答えは間違っているようです。コメントを参照してください。 MySQLはユーザー名のワイルドカードをサポートしていない であるため、GRANTクエリを使用して複数のユーザーを一度に変更することはできないようです。

自分で提案したように、UPDATEクエリを使用してmysql.userテーブルのレコードを直接変更できます。また、Marc Delisleが提案したように、後で特権をフラッシュします。

FLUSH PRIVILEGES;

dba.stackexchange.com>複数のユーザーに権限を付与する方法 も参照してください。

12
lmeurs

はい、mysql.userテーブルを直接変更できます(注意してください)。次に、FLUSH PRIVILEGESステートメントを発行して、実行中のサーバーに変更を適用します。

3
Marc Delisle

mysqldrequire_secure_transport で設定できます。

[mysqld]
...
ssl-ca = ...
ssl-cert = ...
ssl-key = ...
...
require-secure-transport = ON

この機能は、優先されるアカウントごとのSSL要件を補完します。たとえば、アカウントがREQUIRE SSLで定義されている場合、require_secure_transportを有効にしても、アカウントを使用してUnixソケットファイルを使用して接続することはできません。

3
Italo Borssatto