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 認証)」は、作成後にユーザー名は変更できませんが、パスワードはいつでも更新できます。
- Azure ポータルにサインインします。
- 上部の検索で「SQL サーバー(SQL servers)」を探し、対象のサーバーを開きます。
- サーバーの概要画面(Overview)上部のツールバー、または左メニューから「Reset password(パスワードのリセット)」を選びます。
- 新しい管理者パスワードを入力し、確認用にもう一度入力します。
- 保存(Save)して反映させます。
ポイント:ここで変更されるのは「サーバー管理者ログイン」のパスワードです。既存データベースのデータが消えることはありません。
もし「管理者ユーザー名(adminLogin)すら分からない」場合でも、サーバーの概要やプロパティで確認できることが多いです。パスワードだけが不明なら、上記のリセットで復旧できます。
Azure Database for MySQL Flexible Server:管理者パスワードをリセット
MySQL Flexible Server はポータルからも管理者パスワードを更新できます。
- Azure ポータルで対象の「Azure Database for MySQL Flexible Server」を開きます。
- 概要(Overview)で「Reset password」を選択します。
- 新しいパスワードを入力し、確認用にも入力します(入力欄で複雑性要件が案内される場合があります)。
- 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 認証中心へ寄せると、パスワード起因の事故を減らせます。

コメント