ホームページ >データベース >mysql チュートリアル >MySQLユーザーに特権を付与して取り消すにはどうすればよいですか?

MySQLユーザーに特権を付与して取り消すにはどうすればよいですか?

百草
百草オリジナル
2025-03-14 18:42:53857ブラウズ

MySQLユーザーに特権を付与して取り消すにはどうすればよいですか?

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は、ユーザーアクセスを管理するために付与または取り消すことができるさまざまな特権を提供します。最も一般的な特権には次のものがあります。

  • すべての特権:利用可能なすべての特権を付与します。
  • 作成:新しいデータベースとテーブルの作成を可能にします。
  • ドロップ:データベースとテーブルの削除を許可します。
  • 削除:テーブル内のレコードの削除を許可します。
  • 挿入:新しいレコードをテーブルに挿入できます。
  • 選択:テーブルからデータの取得を許可します。
  • 更新:テーブル内の既存のレコードを変更できます。
  • 変更:テーブル構造の変更が可能です。
  • インデックス:インデックスの作成または削除を可能にします。
  • 実行:保存されたルーチンの実行を許可します。

さらに、次のような管理特権があります。

  • 許可オプション:ユーザーが他のユーザーに特権を付与または取り消すことができます。
  • スーパー:他のユーザースレッドを殺すなど、広範な管理機能を提供します。

これらの特権を付与または取り消す場合、グローバル(すべてのデータベース)、データベース、テーブル、または列のさまざまなレベルで指定できます。

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ユーザーの特権を同時に変更することは、MySQLの単一のコマンドによって直接サポートされていません。ただし、プロセスをスクリプトすることでこれを実現できます。 SQLスクリプトを使用した基本的なアプローチは次のとおりです。

  1. スクリプトの作成:各ユーザーの一連の助成金または取り消しステートメントを含む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>
  1. スクリプトを実行します:スクリプトをファイルに保存し(例: modify_privileges.sql )、MySQLコマンドラインツールを使用して実行します。
 <code class="bash">mysql -u root -p </code>

このアプローチを使用すると、複数のユーザーの特権を一度に変更するプロセスを自動化できます。多数のユーザーを扱っている場合はループを使用することにより、おそらくPythonやShellスクリプトなどのプログラミング言語と統合することにより、このスクリプトをさらに強化できます。

ライブデータベースに適用する前に、特権設定のバックアップを常に確認し、非生産環境でスクリプトをテストすることを常に忘れないでください。

以上がMySQLユーザーに特権を付与して取り消すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。