データベースパスワードを生成する

データベース接続用の強力なパスワードを生成します — MySQL、PostgreSQL、MongoDB、Redis。文字制限、接続文字列のエスケープ、環境変数のベストプラクティスを解説します。

Platform-Specific

詳細な説明

データベースパスワードのセキュリティ

データベースパスワードはデータへの直接アクセスを保護します。ユーザー向けアカウントとは異なり、データベース資格情報は通常、設定ファイル、環境変数、またはシークレットマネージャーに保存されるため、記憶しやすさは問題ではありません。最大エントロピーが優先事項です。

データベース固有の文字制限

異なるデータベースシステムには異なるパスワード制限があります:

MySQL

  • 最大32文字(旧バージョン)、MySQL 8.0+では無制限
  • '(シングルクォート)を避ける — SQL文で問題を引き起こす
  • \(バックスラッシュ)を避ける — MySQLのエスケープ文字

PostgreSQL

  • 最大99文字(md5)または1000文字(scram-sha-256)のパスワードをサポート
  • pg_hba.confで使用するパスワードでは'を避ける
  • scram-sha-256認証を使用(md5ではなく)

MongoDB

  • 厳密な文字制限なし
  • @:/を避ける — MongoDB接続文字列のURIデリミタ
  • またはパーセントエンコーディングを使用:@%40になる

Redis

  • requirepassディレクティブは任意の文字列をサポート
  • #を避ける — 設定ファイルのコメント文字
  • Redis 6+では単一パスワードの代わりにACLを使用

接続文字列のエスケープ

データベースパスワードは接続文字列に含まれ、特殊文字にはエスケープが必要です:

# PostgreSQL接続文字列
postgresql://user:p%40ssw%23rd@host:5432/db

# MongoDB接続文字列
mongodb://user:p%40ssw%23rd@host:27017/db

接続文字列でURLエンコーディングが必要な文字:@:/?#%[]

推奨データベースパスワード設定

長さ:    32-64文字
文字:    英数字 + 安全な記号(- _ . ~)
避ける:  ' " \ @ : / ? # % [ ]
保存:    環境変数またはシークレットマネージャー

データベースパスワードの例

xK7m9pR2nT4vB8qW3hL6jY1cF5gD0sA
Nt3vR8kL2pY6wH9mQ4bJ7xF1cG5dA0e

保存のベストプラクティス

  • データベースパスワードをソースコードにハードコーディングしない
  • 環境変数を使用(.envファイルはバージョン管理から除外)
  • シークレットマネージャーを使用(AWS Secrets Manager、HashiCorp Vault、Doppler)
  • 自動化ツールを使用してデータベースパスワードを定期的にローテーション
  • アプリケーションと環境ごとに個別の資格情報を使用

ユースケース

データベースパスワードは、アプリケーションインフラストラクチャを設定するバックエンド開発者、DevOpsエンジニア、システム管理者に必要です。ローカル開発データベースから本番クラウドインスタンスまで、すべてのデプロイメントにはコードベース外に安全に保存された一意の強力なデータベースパスワードが必要です。

試してみる — Password Generator

フルツールを開く