許可テーブルを読み取らず、アクセス制御を無効にするようにサーバーに指示することで、MySQL でクライアント アクセス制御を無効にすることができます。 –skip-grant-tables を使用します そうするためのオプション。 –skip-grant-tables オプションには次の効果があります:
- 接続すると、ユーザーは何でもできる完全な権限を持ちます。
- このオプションは、CREATE USER、GRANT、REVOKE、SET PASSWORD などのアカウント管理ステートメントを無効にします。
アクセス制御を無効にすると、root パスワードを忘れてパスワードをリセットする必要がある場合に便利です。これは、パスワードを入力しなくても、すべてのユーザーが完全な権限で接続できるためです。これは明らかに危険です。リモート クライアントが TCP/IP 経由で接続しないようにするには、–skip-networking オプションを使用します。クライアントは、UNIX ではソケット ファイルを使用し、Windows では名前付きパイプまたは共有メモリを使用して、localhost からのみ接続できます。 localhost からのカジュアルな接続を避けるには、コマンド プロンプトで非標準のソケット名を使用してください。
アカウント管理ステートメントには、付与テーブルのメモリ内コピーが必要ですが、アクセス制御を無効にすると使用できなくなります。権限を変更したり、パスワードを設定したりするには、付与テーブルを直接変更します。または、サーバーに接続した後に FLUSH PRIVILEGES ステートメントを発行します。これにより、サーバーはテーブルを読み取り、アカウント管理ステートメントも有効になります。
結論
MySQL でクライアント アクセス制御を無効にすると、
1. すべての接続が成功します:
- 任意のユーザー名とパスワードを指定でき、任意のホストから接続できます。
- このオプションは、特権システムを完全に無効にします。
- コネクテッド ユーザーは実質的にすべての権限を持ちます。
2. クライアントが接続できないようにする:
- –skip-networking を使用する ネットワーク アクセスを防止し、ローカル ソケット、名前付きパイプ、または共有メモリでのみアクセスを許可するオプション
- ソケットを使用する 非標準ソケットでサーバーを起動して、ローカル アプリケーションやユーザーによるカジュアルなアクセスを防止するオプション