【wordpress】登録ユーザ情報確認とパスワード変更方法(SQLコマンド)

SQLコマンドで直接データベースを確認し、「wordpress」に登録されているユーザの確認方法と、パスワードの変更方法です。(毎回手順を調べているので自分用のメモ)

ユーザ情報の確認方法

「wordpress」用に作成したデータベースの下記テーブルを確認することで、登録されているユーザの情報を確認することが出来ます。

  • wp_users 登録ユーザ一覧情報
  • wp_usermeta 登録ユーザの権限情報などの詳細情報

データベースのテーブル接頭辞を「wp_」で作成しているものとします。
それ以外の場合は「wp_」部分を適宜読み替えてください。

wp_users

「wp_users」テーブルを確認することで、「wordpress」登録されているユーザの情報を取得することができます。

ユーザ情報として取得できる項目として下記カラムが存在しています。

  • ID
  • user_login
  • user_pass
  • user_nicename
  • user_email
  • user_url
  • user_registered
  • user_activation_key
  • user_status
  • display_name

データ取得方法

実際にデータを確認するために下記コマンドで「MariaDB」にログインします。

接続するユーザは、「MariaDB」のrootユーザか、確認するデータベースの管理権限を持ったユーザでログインしてください。

データベースの管理権限を持ったユーザとパスワードについては、「wp-config.php」の「DB_USER」と「DB_PASSWORD」に設定されています。

mysql -u ユーザ -p

あとは、下記SQLを実行することでデータを取得することが出来ます。

DB名は「wp-config.php」の「DB_NAME」の値となります。

SELECT * FROM DB名.wp_users;

実行例

実際に「servermemo」という「wordpress」用DBの「wp_useres」テーブルを確認してみると、下記のように登録されているユーザ情報が表示されます。(ユーザ名やメールアドレスなどは伏字としています)

※SQL分の最後の「\G」は表示結果を縦に表示させるために使用しています。

MariaDB [(none)]> SELECT * FROM servermemo.wp_users \G
*************************** 1. row ***************************
                 ID: 1
         user_login: xxxxxx
          user_pass: $P$BbdJW4oJEkSaA9uoiqHblx0vfYoR/a.
      user_nicename: xxxxxx
         user_email: xxxxxx@xxxxx.xxx
           user_url: 
    user_registered: 2018-10-24 12:07:05
user_activation_key: 
        user_status: 0
       display_name: xxxxxxx
*************************** 2. row ***************************
                 ID: 2
         user_login: yyyyyy
          user_pass: $P$BSoeiXmrTKuG4jzHW7FlYtXaXASjNU.
      user_nicename: yyyyyy
         user_email: yyyyyy@yyyyy.yyy
           user_url: 
    user_registered: 2018-10-25 03:26:24
user_activation_key: 
        user_status: 0
       display_name: yyyyy
2 rows in set (0.00 sec)

パスワードはMD5形式で暗号化されています。

wp_usermeta

「wp_usermeta」テーブルにはユーザに関する色々な設定が下記カラムに格納されています。

  • umeta_id
  • user_id
  • meta_key
  • meta_value

ちなみに、「meta_key」の「wp_capabilities」に「administrator」と表示されているユーザが、「wordpress」の管理者権限を持つユーザになります。

データ取得方法

「wp_usermeta」テーブルの情報は下記SQLで表示させることが出来ます。

SELECT * FROM DB名.wp_usermeta;

実行例

実際に「wp_usermeta」テーブルの中身を確認してみます。(ユーザの名前は伏せています)

※SQL分の最後の「\G」は表示結果を縦に表示させるために使用しています。

MariaDB [(none)]> SELECT * FROM servermemo.wp_usermeta \G
*************************** 1. row ***************************
  umeta_id: 1
   user_id: 1
  meta_key: nickname
meta_value: xxxxxx
*************************** 2. row ***************************
  umeta_id: 2
   user_id: 1
  meta_key: first_name
meta_value: 
*************************** 3. row ***************************
  umeta_id: 3
   user_id: 1
  meta_key: last_name
meta_value: 
*************************** 4. row ***************************
  umeta_id: 4
   user_id: 1
  meta_key: description
meta_value: 
*************************** 5. row ***************************
  umeta_id: 5
   user_id: 1
  meta_key: rich_editing
meta_value: true
*************************** 6. row ***************************
  umeta_id: 6
   user_id: 1
  meta_key: syntax_highlighting
meta_value: true
*************************** 7. row ***************************
  umeta_id: 7
   user_id: 1
  meta_key: comment_shortcuts
meta_value: false
*************************** 8. row ***************************
  umeta_id: 8
   user_id: 1
  meta_key: admin_color
meta_value: fresh
*************************** 9. row ***************************
  umeta_id: 9
   user_id: 1
  meta_key: use_ssl
meta_value: 0
*************************** 10. row ***************************
  umeta_id: 10
   user_id: 1
  meta_key: show_admin_bar_front
meta_value: true
*************************** 11. row ***************************
  umeta_id: 11
   user_id: 1
  meta_key: locale
meta_value: 
*************************** 12. row ***************************
  umeta_id: 12
   user_id: 1
  meta_key: wp_capabilities
meta_value: a:1:{s:13:"administrator";b:1;}
*************************** 13. row ***************************
  umeta_id: 13
   user_id: 1
  meta_key: wp_user_level
meta_value: 10

##### 以下省略 #####
管理者権限を持ったユーザを調べる方法

管理者権限を持ったユーザを探したい場合は、「meta_key」の「wp_capabilities」に「administrator」と表示されているユーザを探すことで、「wordpress」の管理者権限を持つユーザを探すことが出来ます。

実際に、「servermemo」という「wordpress」用DBの「wp_usermeta」テーブルを確認してみます。

SELECT * FROM servermemo.wp_usermeta WHERE meta_key LIKE '%nickname%' OR meta_key LIKE 'wp_capabilities' ;
+----------+---------+-----------------+---------------------------------+
| umeta_id | user_id | meta_key        | meta_value                      |
+----------+---------+-----------------+---------------------------------+
|        1 |       1 | nickname        | xxxxxx                          |
|       12 |       1 | wp_capabilities | a:1:{s:13:"administrator";b:1;} |
|       19 |       2 | nickname        | yyyyyy                          |
|       30 |       2 | wp_capabilities | a:1:{s:6:"author";b:1;}         |
+----------+---------+-----------------+---------------------------------+

今回は「nickname」の値も一緒に表示させていますが、「nickname」とログインユーザ名の設定が異なる場合もあるため、より正確にどのユーザが管理者権限を持っているかを確認するためには、「user_id」の値に注目してください。

「user_id」の値は「wp_users」テーブルの「user_id」カラムと対応しているので、見比べることで管理者ユーザを判別することができます。

パスワード変更

ユーザのパスワードが分からなくなった場合は、下記コマンドでパスワードの再設定を行うことが出来ます。

管理者ユーザのパスワードを忘れてしまった場合などに使用してください。

UPDATE DB名.wp_users SET user_pass = MD5('新しいパスワード') WHERE user_login = 'パスワード変更ユーザー';

パスワード変更例

「tamotamo」というユーザのパスワードを「dbpass」に変更してみます。

MariaDB [(none)]> UPDATE servermemo.wp_users SET user_pass = MD5('dbpass') WHERE user_login = 'tamotamo';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

これでユーザのパスワードが変更されたので、実際にwordpressにログインできるか確認してみてください。

シェアする