アンドロイド

mysqlでユーザーを表示/一覧表示する方法

目次:

Anonim

MySQLサーバーのすべてのユーザーのリストを取得する必要がありましたか? データベースとテーブルを表示するコマンドはありますが、MySQLの show users コマンドはありません。

このチュートリアルでは、コマンドラインを使用してMySQLデータベースサーバーのすべてのユーザーアカウントを一覧表示する方法について説明します。 また、特定のデータベースにアクセスできるユーザーを確認する方法も示します。

あなたが始める前に

MySQLまたはMariaDBサーバーがシステムにインストールされていることを前提としています。

すべてのコマンドは、rootユーザーとしてMySQLシェル内で実行されます。 MySQLシェルにアクセスするには、次のコマンドを入力し、プロンプトが表示されたらMySQLルートユーザーのパスワードを入力します。

mysql -u root -p MySQLルートパスワードを忘れた場合は、次の手順に従ってリセットできます。

すべてのMySQLユーザーを表示

MySQLは、ユーザーに関する情報を mysql データベースの user という名前のテーブルに保存します。

すべてのMySQLユーザーアカウントのリストを取得するには、 SELECT ステートメントを使用して、 mysql.users テーブルからすべての行を取得します。

SELECT User, Host FROM mysql.user;

出力は次のようになります。

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)

上記のコマンドは mysql.user テーブル( User Host )から2列のみを表示します。このテーブルには、 Password Select_priv Update_priv などの40以上の列が含まれます。

MySQLのユーザーアカウントは、ユーザー名とホスト名の2つの部分で構成されています。

desc mysql.user; 使用し desc mysql.user; テーブルの列に関する情報を表示するステートメント。 列名がわかれば、選択したデータに対してクエリを実行できます。

たとえば、パスワードに関する情報やパスワードがアクティブか期限切れかなどのすべてのMySQLユーザーアカウントのリストを取得するには、次のクエリを使用します。

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

特定のデータベースにアクセスできるユーザーを表示する

データベースレベルの権限に関する情報は、 mysql.db テーブルに保存されます。

テーブルを照会して、特定のデータベースにアクセスできるユーザーと権限のレベルを確認できます。

たとえば、 db_name という名前のデータベースにある程度のアクセス権を持つすべてのユーザーのリストを取得するには、次のクエリを使用します。

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

権限を表示せずに、特定のデータベースにアクセスできるユーザーアカウントに関する情報のみを取得するには、次を使用します。

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

次のクエリは、すべてのデータベースと関連ユーザーに関する情報を表示します。

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

結論

このチュートリアルでは、すべてのMySQLユーザーのリストを取得し、特定のデータベースにアクセスできるユーザーを見つける方法を示しました。

ご質問がある場合は、コメントをお気軽にお寄せください。

mysql mariadb