目次:
MySQLでは、複数のユーザーアカウントを作成し、適切な特権を付与して、ユーザーがデータベースに接続して管理できるようにします。
ユーザーアカウントが不要になった場合は、ユーザー特権を削除するか、ユーザーアカウントを完全に削除することをお勧めします。
このチュートリアルでは、MySQL / MariaDBユーザーアカウントを削除する方法について説明します。
DROP USER
ステートメント
MySQLでは、
DROP USER
ステートメントを使用して1人以上のユーザーと割り当てられた特権を削除できます。 このステートメントの一般的な構文は次のとおりです。
DROP USER USER_ACCOUNT…
たとえば、
brian@localhost
ユーザーアカウントを削除してMYSQLシェルにログインし、実行するには:
DROP USER 'brian@localhost';
成功すると、コマンドは以下を返します。
Query OK, 0 rows affected (0.00 sec)
単一のコマンドで複数のユーザーアカウントを削除するには、削除するユーザーをスペースで区切って実行する
DROP USER
ステートメントを実行します。
DROP USER 'brian@localhost' 'any@localhost';
削除しようとしているユーザーが現在ログインしている場合、ユーザーセッションは閉じられず、ユーザーはセッションが終了するまでクエリを実行できます。 セッションが閉じられると、ユーザーは削除され、MySQLサーバーにログインできなくなります。
ユーザーが作成したデータベースとオブジェクトは自動的に削除されません。
MySQLユーザーアカウントの削除
このセクションでは、MySQLユーザーアカウントを一覧表示および削除する方法について順を追って説明します。
まず、ルートまたは別の管理ユーザーでMySQLシェルにログインします。 これを行うには、次のコマンドを入力します。
sudo mysql
mysql -u root -p
以下のコマンドは、MySQLシェル内で実行されます。
MySQLは、ユーザーに関する情報を
mysql
データベースの
user
テーブルに保存します。 次の
SELECT
ステートメントを使用して、すべてのMySQLユーザーアカウントのリストを取得します。
SELECT User, Host FROM mysql.user;
出力は次のようになります。
+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | jabba | localhost | | jabba | 10.10.8.8 | | chewbacca | localhost | +------------------+-----------+ 5 rows in set (0.00 sec)
MySQLでは、ユーザーアカウントはユーザー名とホスト名の部分で構成されます。
jabba@localhost
と
[email protected]
は異なるユーザーアカウントです。
chewbacca@localhost
ユーザーアカウントが不要になり、削除したいとします。
ユーザーを削除するには:
DROP USER 'chewbacca'@'localhost'
Query OK, 0 rows affected (0.00 sec)
このコマンドは、ユーザーアカウントとその特権を削除します。
ユーザーが削除されたので、そのユーザーに関連付けられているデータベースも削除できます。
結論
MySQLユーザーアカウントを削除するには、
DROP USER
ステートメントに続けて、削除するユーザーの名前を使用します。