Wordpress データベースからユーザーアカウントを作成する方法
ユーザーアカウントには管理者権限が無かったり、ログインパスワードがわからないなど様々な問題が起きます。
ユーザーアカウントには管理者権限が無いと、新しくユーザーを作る事ができません。
その場合はデータベースから直接ユーザーアカウントを作成する事ができます。
データベースからユーザーアカウントを作成する理由
本記事ではデータベースをphpMyAdminで操作し、ユーザーアカウントを作成する方法についてご紹介します。
ユーザーアカウントを作成する理由は主に3つあります。
・管理者権限が無い
・Wordpress管理画面にログインできない
・個人情報保護の観点
管理者権限が無い
Wordpressの移転やリニューアルを担当する際によく出くわすのが、ログインアカウントに管理者権限がない事です。
できる事が投稿作業のみで、デザインや設定関連の操作ができない場合ですね。
しかしサイトをリニューアルしたり移転させるとなれば、制限の掛かったアカウントではいろいろと不便です。
しかし管理者権限のあるユーザーアカウントでないと、新しくユーザーを作る事ができないというジレンマが起きます。
業者との関係性
サイトを作った業者さんと疎遠になったり連絡が取れない、或いは関係が悪化して連絡自体を取りたくないなど、よくある話です。
このように制作担当者とクライアントとの関係不調から、管理者権限が持てない場合もあります。
そんな時phpMyAdminにログインできれば、管理者権限を持つユーザーアカウントを作成できます。
パスワードがわかならい
クライアントによっては、管理者パスワードを失念してしまいログイン自体ができないという事もあります。
その場合phpMyAdminにログインできれば、管理者アカウントの情報を編集する事ができます。
Wordpressの構築時に最低でも1件は管理者アカウントが登録されていますからね。
そのパスワードを新しく設定し直せば、その情報でログインができる様になります。
個人情報保護の観点も
仮に管理者カウントであっても、安易にクライアントからログインパスワードを聞くのは危険という考え方もあります。
情報を取得する事は、個人情報保護の観点から様々なリスクも付きまといます。
クライアントに後からパスワードを変えてもらう必要が出てきますしね。
自分専用のアカウントを作る
そんな時phpMyAdminから直接ユーザーアカウントを作成すれば、クライアントにログイン情報を聞かずに済みます。
自分専用のアカウントですから、お仕事が済んだらアカウントを消せば良いのです。
データベース上でもパスワードは暗号化された状態で格納されているので、クライアントのパスワードを盗み見る事はできません。
DB情報の取得・ログイン
まずはWordpressのデータベース情報を調べましょう。
DB情報はwp-config.phpに記載があるため、wp-configファイルの取得は必須です。
FTP情報か、或いはWordpress構成データ(wp-config.php入り)が必要になります。
phpMyAdminにログインする
DBユーザー名・パスワード・DBホスト名がわかったら、phpMyAdminへログインします。
ログインしたら、データベース内のwp_usersテーブルをクリックします。
テーブル接頭語はケースによって様々ですので、末尾がusersとなっているテーブルを選択しましょう。
中を開いたら、上部の「挿入」タブを押します。
usersテーブルへの追加
それではユーザー情報を新しく追加していきます。
入れる項目は赤文字部分程度でそんなに多くありません。
入力する項目
・user_login:ユーザーID
・user_pass:md5を選択し、md5変換したパスワードを入力
・user_nicename:(空欄かユーザーIDと同じ)
・user_email:受信できるメールアドレス
・user_registered:(過去の任意の日付)
・user_status:0
・display_name:(空欄かユーザーIDと同じ)
入力が終了したら「実行する」を押しましょう。
md5変換とは
md5(エムディーファイブ)とは、与えられた文字例を128ビットのハッシュ値に変換するハッシュ関数です。
出力すると半角英数字の羅列に変更されます。
md5への変換はこちら
このハッシュ値された文字列からは、元の情報を読み取る事ができません。
ですのでデータベース上でもパスワードを読み取る事はできない訳です。
代わりに別のパスワード(md5変換した文字列)に変更する事はできます。
同じパスワードは使えない
パスワードは、既にログイン情報として使っているものと同じパスワードは使えません。
情報を登録すること自体は可能ですが、実際にはパスワードが弾かれてログインができません。
別のユーザーアカウントで使われているパスワードと同じものは設定しないようにしましょう。
wp_usermetaテーブルへ権限情報追加
次にusermetaテーブルに対し、ユーザーの権限情報を追加します。
usersテーブルでは1つだけ登録をしましたが、usermetaテーブルには複数の情報(以下:レコード)を追加する事になります。
追加したレコードの数だけ、そのアカウントに付与する権限情報を登録した事になります。
1つのアカウントに付与された複数の権限情報
例えば先ほど追加した時のIDが「2」だったとしましょう。
その場合usersには既に、最初のユーザーアカウントであるID「1」の情報が入っている訳ですね。
ではusermetaテーブルをクリックして中身を見てみましょう。
複数の権限情報が登録されている
user_idが「1」となっているレコードが既にたくさん入っている事がわかると思います。
これらは全てID「1」のアカウントに紐づけられた権限情報となります。
これと同様に今回追加したID「2」に対しても、複数の権限を紐づける必要があるのです。
本記事では特別に、最低限度2つの権限情報のみを追加します。
権限登録1回目
まず1回目の登録をしましょう。usermetaを開いて「挿入」を押します。
wp_capabilities
入力項目は3か所です(一番上のidは空白)。
・user_id…先ほど追加したユーザーIDの数値
・meta_key…「wp_capabilities」と入力
・meta_value…「a:1:{s:13:”administrator”;b:1;}」と入力
関数の選択項目部分は触る必要はありません。
a:1:{s:13:”administrator”;b:1;}は丸ごとこのまま入れましょう。
入力が終了したら「実行する」を押しましょう。
権限登録2回目
さらに2回目の権限情報を追加します。もう一度usermetaから「挿入」を押します。
wp_user_level
・user_id…先ほど追加したユーザーIDの数値(上と同じもの)
・meta_key…「wp_user_level」と入力
・meta_value…「10」と入力
この2つでWordpressにログインは可能
ここまで、1回目は「2」に対しwp_capabilitiesを設定し、2回目は「2」に対しwp_user_levelを設定しました。
これでusermetaに最低限2つのデータを追加した事になります。
これで先ほどのusersのユーザー名とパスワードを入れれば、Wordpressにログインはできるようになります。
本来はレコード数分全て追加が必要
今回usermetaのデータは2件しか登録しませんでした。
しかし先ほど確認した様に、登録済みID「1」が入っているusermetaのレコードは20個以上ありました。
それらはその数だけ権限が設定されている事を意味します。
複製が目的であれば全て追加する事
ですので本来は2件だけでなく、ID「1」のレコードと同じ数だけ権限登録をしなければなりません。
もし元々のユーザーアカウントを複製する事が目的であった場合、パスワード以外は全く同じ権限を用意するべきだからです。
ですので少し面倒ですが、1件ずつ中身を開いて書いてある内容と位置の通りにコピペするべきです。
※その場合、既に登録済みのwp_capabilitiesやwp_user_level以外の項目をコピーしましょう。
残りの権限をWordpress管理画面から登録
上で紹介した2つだけでも登録すれば、Wordpressへのログインは可能です。
先ほど権限の数だけ登録するべきと言いましたが、正直データベース上で追加するのは面倒ですよね。
20個以上あれば、正直どこまで複製したかわからなくなる事もしばしばです。
詳細な権限は管理画面から設定
Wordpressにログインさえできれば、「ユーザー」の「個人設定」の欄から不足している権限情報の追加ができます。
管理画面の「ユーザー一覧」から、追加したユーザー名をクリックして編集画面を出しましょう。
この個人設定の画面の方が項目も視覚的にわかりやすいですしね。
管理画面から編集をした後にphpMyAdminでusermetaテーブル内を見ると、IDが「2」に設定されているレコードがたくさん増えているはずです。
この様にどちらからでもユーザーアカウントの作成・権限追加ができます。