MySQLユーザーの特権を管理するには、Grant CommandとRevokeコマンドを使用します。これらを使用する方法は次のとおりです。
特権を付与する:
助成金コマンドは、ユーザーに特定の特権を与えるために使用されます。基本的な構文は次のとおりです。
<code class="sql">GRANT privilege_type ON database_name.table_name TO 'username'@'host';</code>
たとえば、 company
データベースのemployees
という名前のテーブルにSelect Privilegeを付与するには、ホストから接続できるjohn
という名前のユーザーに付与します。
<code class="sql">GRANT SELECT ON company.employees TO 'john'@'%';</code>
取り消し特権:
Recokeコマンドは、ユーザーから特定の特権を削除するために使用されます。基本的な構文は次のとおりです。
<code class="sql">REVOKE privilege_type ON database_name.table_name FROM 'username'@'host';</code>
たとえば、 employees
テーブルでjohn
からの選択の特権を取り消すには:
<code class="sql">REVOKE SELECT ON company.employees FROM 'john'@'%';</code>
特権を変更した後、特権をリフレッシュしてすぐに有効にすることをお勧めします。
<code class="sql">FLUSH PRIVILEGES;</code>
MySQLは、ユーザーアクセスを管理するために付与または取り消すことができるさまざまな特権を提供します。最も一般的な特権には次のものがあります。
さらに、次のような管理特権があります。
これらの特権を付与または取り消す場合、グローバル(すべてのデータベース)、データベース、テーブル、または列のさまざまなレベルで指定できます。
MySQLユーザーの現在の特権を確認するには、 SHOW GRANTS
ステートメントを使用できます。基本的な構文は次のとおりです。
<code class="sql">SHOW GRANTS FOR 'username'@'host';</code>
たとえば、ホストから接続できるユーザーjohn
の特権を確認するには:
<code class="sql">SHOW GRANTS FOR 'john'@'%';</code>
このコマンドは、 john
に付与されたすべての特権をリストします。現在ログインしているユーザーの特権を見たい場合は、次のことを使用できます。
<code class="sql">SHOW GRANTS FOR CURRENT_USER;</code>
これにより、現在コマンドを実行しているユーザーの特権が表示されます。
複数のMySQLユーザーの特権を同時に変更することは、MySQLの単一のコマンドによって直接サポートされていません。ただし、プロセスをスクリプトすることでこれを実現できます。 SQLスクリプトを使用した基本的なアプローチは次のとおりです。
<code class="sql">GRANT SELECT ON company.employees TO 'john'@'%'; GRANT SELECT ON company.employees TO 'jane'@'%'; GRANT SELECT ON company.employees TO 'bob'@'%'; FLUSH PRIVILEGES;</code>
modify_privileges.sql
)、MySQLコマンドラインツールを使用して実行します。<code class="bash">mysql -u root -p </code>
このアプローチを使用すると、複数のユーザーの特権を一度に変更するプロセスを自動化できます。多数のユーザーを扱っている場合はループを使用することにより、おそらくPythonやShellスクリプトなどのプログラミング言語と統合することにより、このスクリプトをさらに強化できます。
ライブデータベースに適用する前に、特権設定のバックアップを常に確認し、非生産環境でスクリプトをテストすることを常に忘れないでください。
以上がMySQLユーザーに特権を付与して取り消すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。