Azure SQL Database / Azure Database for MySQLのパスワードを忘れたときのリセット方法(ポータル・Azure CLI・PowerShell)

Azure SQL Database や Azure Database for MySQL で「管理者パスワードを忘れた…」となっても、パスワードを“復元”することはできません。できるのは新しいパスワードへ更新(リセット)することだけです。本記事では、Azure ポータル/Azure CLI/PowerShell での再設定手順と、変更後に必ず行うべき接続設定の更新・トラブルシュートまで、実務目線でまとめます。

目次

まず整理:あなたが忘れたのは「どのパスワード」か

Azure の「SQL」と一口に言っても、サービスや認証方式によって“リセットすべき場所”が異なります。最短で解決するために、最初にここだけ押さえてください。

対象よくあるサービス忘れがちなものリセット場所(結論)
SQL 認証のサーバー管理者Azure SQL Database(論理サーバー)サーバー管理者ログイン(adminLogin)のパスワードSQL サーバー リソースで「Reset password」
MySQL の管理者Azure Database for MySQL Flexible Server管理者ユーザーのパスワードMySQL サーバーの「Reset password」または CLI 更新
Microsoft Entra ID(旧 Azure AD)ユーザーAzure SQL(Entra 認証)会社アカウントのパスワードSQL 側ではなく Entra 側(SSPR/管理者)で変更
アプリの接続情報App Service / Functions / AKS など接続文字列・シークレット・環境変数パスワード更新後に必ずアプリ側も更新

特に多い勘違いが「Azure SQL Database の“データベース”を開いて探す」パターンです。基本は“SQL サーバー(論理サーバー)”側で管理者パスワードを更新します。

前提:Azure ではパスワードは「確認」できない

セキュリティの理由から、Azure 上のマネージド DB では現在のパスワードを表示したり、思い出したりすることはできません。そのため対応は常に「新しいパスワードに更新(リセット)」になります。

このとき重要なのは、データベースを作り直す必要は基本的にないこと。多くのケースでは、管理者パスワード更新 → 接続先(アプリ/ツール)の設定更新、で復旧できます。


方法:Azure ポータルからリセット(最短で直したい人向け)

Azure SQL Database:SQL サーバー(論理サーバー)の管理者パスワードをリセット

Azure SQL Database の「サーバー管理者(SQL 認証)」は、作成後にユーザー名は変更できませんが、パスワードはいつでも更新できます。

  1. Azure ポータルにサインインします。
  2. 上部の検索で「SQL サーバー(SQL servers)」を探し、対象のサーバーを開きます。
  3. サーバーの概要画面(Overview)上部のツールバー、または左メニューから「Reset password(パスワードのリセット)」を選びます。
  4. 新しい管理者パスワードを入力し、確認用にもう一度入力します。
  5. 保存(Save)して反映させます。

ポイント:ここで変更されるのは「サーバー管理者ログイン」のパスワードです。既存データベースのデータが消えることはありません。

もし「管理者ユーザー名(adminLogin)すら分からない」場合でも、サーバーの概要やプロパティで確認できることが多いです。パスワードだけが不明なら、上記のリセットで復旧できます。

Azure Database for MySQL Flexible Server:管理者パスワードをリセット

MySQL Flexible Server はポータルからも管理者パスワードを更新できます。

  1. Azure ポータルで対象の「Azure Database for MySQL Flexible Server」を開きます。
  2. 概要(Overview)で「Reset password」を選択します。
  3. 新しいパスワードを入力し、確認用にも入力します(入力欄で複雑性要件が案内される場合があります)。
  4. Saveで保存して反映します。

なお MySQL の管理者パスワードは、Azure CLI 側の仕様として最小 8 文字・最大 128 文字などの要件が示されています(大文字/小文字/数字/記号のうち 3 種類を含む、など)。

補足:PostgreSQL Flexible Server も同様に「Reset password」

Azure Database for PostgreSQL flexible server も、概ね同じ考え方で管理者パスワードを更新できます(ただし、UI 上で Reset password が有効になるにはサーバー状態が Ready である必要がある、といった条件がある場合があります)。


方法:Azure CLI からリセット(運用・自動化したい人向け)

Azure CLI は手順を標準化しやすく、運用手順書や自動化(GitHub Actions / Azure DevOps など)にも載せやすいのがメリットです。ただし、パスワードをコマンドに直書きすると履歴やログに残ることがあるため、後述の「漏えいさせない書き方」も必ずセットで確認してください。

事前準備(共通)

  • Azure CLI がインストール済みであること
  • az login でログインできること
  • 対象リソースに対して更新権限(例:Contributor/Owner 相当)があること
  • 複数サブスクリプションを扱う場合は az account set で対象を固定すること

Azure SQL(SQL サーバー)の管理者パスワードを更新

az sql server update \
  --resource-group <リソースグループ名> \
  --name <SQLサーバー名> \
  --admin-password <新しいパスワード>

このコマンドは「論理サーバー」の管理者パスワードを更新します。DB を作り直す必要はありません。

Azure Database for MySQL Flexible Server の管理者パスワードを更新

az mysql flexible-server update \
  --resource-group <リソースグループ名> \
  --name <MySQLサーバー名> \
  --admin-password <新しいパスワード>

MySQL Flexible Server の管理者パスワード要件(長さ・複雑性)は CLI リファレンスにも明記されています。要件を満たしていない場合は、更新時にエラーになります。

パスワードを漏えいさせない CLI 実行のコツ(実務で重要)

「コマンドにパスワードを直書き」すると、シェル履歴・実行ログ・CI の出力などに残るリスクがあります。安全のため、次のいずれかの運用をおすすめします。

やり方メリット注意点
環境変数に入れて参照コマンドを共有しやすい環境変数の扱い(ログ出力)に注意
対話入力(read -s 等)履歴に残りにくい自動化には不向き
Key Vault から取得して更新運用が一番安全で再現性が高いKey Vault 設計・権限が必要

特に CI/CD で実行する場合は、GitHub Actions Secrets / Azure DevOps の Secret 変数 / Key Vault 連携を使い、標準出力にシークレットが出ないようにしてください。


方法:PowerShell からリセット(Windows 管理・スクリプト派向け)

PowerShell は運用スクリプトと相性が良く、Windows 環境の管理者にとって扱いやすい選択肢です。現在は AzureRM ではなく Az モジュールを前提にするのが一般的です。

Azure SQL(SQL サーバー)の管理者パスワードを更新:Set-AzSqlServer

$rg = "<リソースグループ名>"
$server = "<SQLサーバー名>"

$newPassword = ConvertTo-SecureString "<新しいパスワード>" -AsPlainText -Force

Set-AzSqlServer `  -ResourceGroupName $rg`
-ServerName $server `
-SqlAdministratorPassword $newPassword 

上記は「サーバー管理者のパスワード」を更新します。コマンドレットの例としても、管理者パスワードをリセットする用途が明記されています。

補足:古い手順で Set-AzureRmSqlServer を見かけることがありますが、環境によっては利用できない/非推奨です。可能なら Az 系(Set-AzSqlServer)に寄せて運用を統一すると、手順が安定します。


パスワード変更後に必ずやること(ここを忘れると「直らない」)

パスワードを更新しても、接続する側(アプリ・ツール・ジョブ)が古いパスワードのままだと、当然つながりません。現場ではここが原因で「リセットしたのにログインできない」となりがちです。

更新対象のチェックリスト

更新が必要な場所具体例やること
アプリの接続文字列App Service / Functions / Container Apps / AKS設定値のパスワード部分を更新し、必要なら再起動
運用ジョブバッチ、ETL、データ連携、監視ツールジョブ定義内の資格情報を更新
開発者ツールSSMS / Azure Data Studio / MySQL Workbench保存済み接続(接続プロファイル)を更新
シークレット保管Key Vault / GitHub Secrets / パスワードマネージャ新パスワードを登録し、古いものは廃棄(ローテーション履歴も整備)

「すぐには反映されない?」と感じたとき

  • 接続プールを使うアプリは、古い接続がしばらく生きる場合があります。新規接続は新パスワードが必須です。
  • 安全側に倒すなら、アプリ側の再起動(または接続の張り直し)をセットで実施すると切り分けが早いです。
  • 同じ接続先でも「本番/検証」や「別リージョン」など、意外と環境を間違えがちなので、サーバー名(FQDN)も合わせて見直します。

うまくいかないときの原因切り分け(よくある罠)

パスワードをリセットしたのに接続できないときは、認証エラーなのかネットワーク/設定エラーなのかを分けると解決が速くなります。

症状別:よくある原因と対処

症状主な原因対処
「Login failed」系のエラーパスワード/ユーザー名が違う、SQL 認証と Entra 認証の取り違え接続方式を再確認(SQL Login / Entra ID)、ユーザー名も含めて確認
Reset password ボタンがグレーアウト権限不足、サーバー状態、またはEntra-only 認証を有効化して SQL 認証が無効ロール見直し/状態確認/Entra-only を一時的に無効化して作業
IP 制限・Firewall エラー接続元 IP が許可されていない、VNet/Private Endpoint の経路問題Firewall 設定・DNS・経路を確認(特に社内回線/自宅回線の切替)
MySQL だけ接続できないSSL 必須設定、ユーザー名の形式、ホスト名の取り違え接続文字列の SSL/ユーザー名/ホスト名を再確認

Reset password が押せない場合:Entra-only 認証が原因のケース

Azure SQL には「Microsoft Entra-only authentication(旧 Azure AD-only)」という機能があり、これを有効にするとSQL 認証が無効化されます。つまり、SQL サーバー管理者(SQL ログイン)を含む SQL 認証の接続ができなくなります。

この状態では「Reset password」が無効に見える、または SQL 認証でのログインができない、といった現象につながります。対処として、必要に応じて一時的に Entra-only を無効化(ポータルでチェックを外して保存)する手順が案内されています。

運用上の考え方:Entra-only を使う方針なら、そもそも SQL 認証のパスワードに頼らない設計(Entra 認証+最小権限)に寄せるのが筋です。逆に「当面は SQL 認証が必要」なら、Entra-only を有効化する前に運用手順(緊急時の復旧手段)を決めておくと事故が減ります。


再発防止:パスワードを忘れない・漏えいさせない運用にする

「忘れた」そのものより、実は「誰かが知っているはずのパスワードが分からない」「どこに保存したか不明」の方が運用事故として痛いです。復旧できたら、次のどれかを必ず実施して“同じトラブルを繰り返さない仕組み”に変えましょう。

おすすめの改善策

改善策効果実務ポイント
Key Vault に接続情報を集約パスワードの所在が一元化され、監査もしやすいアプリは Key Vault 参照(またはデプロイ時に注入)に統一
定期ローテーション漏えい時の被害を限定アプリ更新の手順(再起動含む)を手順書化
Azure SQL は Entra 認証+(可能なら)マネージド IDパスワード運用そのものを減らせるEntra-only を使う場合は復旧手順(緊急アクセス)も設計
権限を最小化漏えい時の被害を抑える管理者アカウントの常用をやめ、用途別ユーザーを作る

Azure SQL の認証を「パスワード依存」から減らす考え方

Azure SQL では Microsoft Entra ID による認証を利用できます。さらに Entra-only 認証を有効にすると SQL 認証が無効になり、Entra 認証に統一できます。

ただし、これは「Reset password で SQL 管理者を復旧する」発想と相性が悪くなるため、採用するなら運用設計が必須です(例:Entra 管理者の緊急アクセス、特権ロール管理、監査ログ)。


よくある質問

パスワードをリセットしたら、既存データは消えますか?

消えません。パスワード更新は認証情報の変更であり、データベース自体を削除・再作成する操作ではありません。

サーバー管理者の「ユーザー名」も変えられますか?

Azure SQL Database のサーバー管理者(Server admin)のログイン名は、作成後に変更できません。必要なのはパスワード更新です。

Reset password ボタンが見つかりません

「SQL データベース」リソースではなく、必ず「SQL サーバー(SQL servers)」リソース側を開いてください。データベースの画面から辿る場合も、最終的にはサーバー画面で Reset password を実行します。

Reset password が押せない(グレーアウト)

権限不足のほか、Microsoft Entra-only 認証が有効で SQL 認証が無効化されている可能性があります。Entra-only 認証はポータルや CLI で無効化する手順が案内されています。

リセット後もログインできないのですが…

次の順で確認すると切り分けが早いです。

  • 接続先(サーバー名/FQDN)を間違えていないか
  • ユーザー名を間違えていないか(特に MySQL は admin 名の取り違えが多い)
  • 接続方式(SQL 認証 / Entra 認証)を取り違えていないか
  • アプリ/ツール側の接続文字列が古いままではないか(保存済み設定含む)
  • Firewall・ネットワーク(VNet/Private Endpoint)で弾かれていないか

まとめ

  • Azure 上の SQL は、パスワードを「確認」するのではなく新しいパスワードへ更新して復旧します。
  • Azure SQL Database はSQL サーバー(論理サーバー)側で Reset password を実行します。
  • MySQL Flexible Server もポータル/CLI で管理者パスワード更新が可能です。
  • 変更後は、アプリやツールの接続文字列を必ず更新し、必要に応じて再起動まで行うとトラブルが減ります。
  • 再発防止として、Key Vault などに集約し、できれば(特に Azure SQL は)Entra 認証中心へ寄せると、パスワード起因の事故を減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次