お客さんの Concrete CMS の診断をするときなど、SQL Dump データをいただいても、ID や Password がわからない時があります。
そんな時は、MySQL データベースの中に入り、スーパー管理者のメールアドレスを社内のプロジェクト用グループメールや自分のメールアドレスに直接変更し、パスワードリセットを通じてログインできるようにします。
下記の説明は SSH ログインで MySQL or MariaDB の CLI Client を使う想定ですが、PHPMyAdmin などのウェブ管理画面や Sequal Ace などのアプリでも同じようなことができます。
スーパー管理者のパスワードリセット方法
- 開発の SSH にログイン
- MySQL にログイン
mysql -u ユーザー名 --password="パスワード" 開発のDB名前
- uID = 1 の情報を取得
select * from Users where uID=1;
- ここの結果で出てくる uName のカラムがログインIDです
- メールアドレスが uEmail のカラム
- uID=1 のメールアドレスを希望するメールアドレスに変更
-
UPDATE Users SET uEmail="example@example.co.jp" WHERE uID=1;
-
example@example.co.jp
の部分を変えて実行してください
-
-
- 開発サイトのパスワード再発行ページに訪問
[サイトURL]/index.php/login/concrete/forgot_password
- パスワード再発行にてさっき変更したメールアドレスでに確認メールを送信し、パスワードを自分が覚えているランダムなものに変更する
- メールが届かなない可能性があります。その時は MySQL にまた入って Logs テーブルから探します。
- MySQL にログイン
-
select * from Logs ORDER BY logID DESC limit 1;
一番新しいログの1件を表示するというコマンド - パスワード再発行の URL を取得します。
- メールログの記録を停止しているサイトもありますが、その際は config ファイルを修正して再開させます。(長くなるので割愛。もしも知りたかったら、 Concrete CMS ユーザーフォーラム で質問してください。
- メールが届かなない可能性があります。その時は MySQL にまた入って Logs テーブルから探します。
- これでスーパー管理者の ID & Password の変更が完了です。
おまけ: ユーザーのメールアドレス匿名化
Concrete CMS の中にあるユーザー情報からメールアドレスを example.com などに一括で変更するSQL文サンプルです。
SSH からのMySQL/MariaDB の CLI や、PHPMyAdmin や Sequal Ace などの「SQL」の項目から実行できます。
フォーマット
UPDATE Users SET uEmail=REPLACE(uEmail, "original", "example");
# メールアドレスから特定の文字列「original」だけを「example」に変更する
UPDATE Users SET uEmail=REPLACE(uEmail, "original", "example");
# メールアドレスを「ユーザー名@example.com」に変更する
UPDATE Users SET uEmail=CONCAT(uName, '@example.com');
# メールアドレスを「ユーザー名@example.com」に変更するけれど「@example.co.jp」のメールアドレスは変えない。(例:自分の会社メールアドレスは匿名化しない)
UPDATE Users SET uEmail=CONCAT(uName, '@example.com') WHERE uEmail NOT LIKE "%@example.co.jp";
#メールアドレスを「数字の連番@example.com」に変更するけれど「@example.co.jp」のメールアドレスは変えない。(例:自分の会社メールアドレスは匿名化しない)
UPDATE Users SET uEmail=CONCAT(uID, '@example.com') WHERE uEmail NOT LIKE "%@example.co.jp";
# ユーザー名もスーパー管理者以外は連番だけにする
UPDATE Users SET uName=uID WHERE uID NOT LIKE "1";
以上。