1. 初めに

ブラウザから直接データを操作できる Cloud SQL Studio はパブリックIPを持たない Cloud SQL インスタンスの場合などに非常に便利なツールです。

しかし、いざ使おうとすると「rootでログインできない」「権限がなくエラーになる」といった壁にぶつかることがあります。

今回は、ユーザー作成ルートによる権限の違いと Cloud SQL Studioへログイン する際の注意点についてまとめました。

2. ユーザー作成

Cloud SQLの「ユーザー」から組み込み認証を選択し、ユーザー名とパスワードを設定してユーザーを作成します。

 

Cloud SQL では、どこでユーザーを作成したかによって、内部的に付与されるデフォルトの権限が区別されています。

コンソールから作成されたユーザーには、「ユーザー アカウントには cloudsqlsuperuser root アクセス権が割り当てられます」という一文があるように、cloudsqlsuperuser という強力なロールが自動的に割り当てられます。

対して、mysqlクライアントで作成されたユーザーは、「権限なし」の状態で作成されます。そのため、新しいデータベースを作成するたびに、明示的にアクセス権を付与(GRANT)しなければ、中身を見ることもできません。

 

作成ルート別の初期権限比較

比較項目 Google Cloud コンソール / gcloud mysql クライアント
付与されるロール cloudsqlsuperuser (自動付与) なし
新規DBへの対応 自動で全DBにアクセス可能 GRANT 命令が必須
Cloud SQL Studio root 相当の管理作業が可能 権限不足でエラーになりやすい

3. データベースへのログイン

Cloud SQL Studioにてデータベースと先ほど作成したユーザーを選択すると、アクセスが可能になります。

 

root ユーザーはサポート対象外

Cloud SQL Studioからrootユーザーでのアクセスはサポートされていないためrootユーザーでのログインはできません。

そのため、root以外のユーザーの作成をしておく必要があります。

権限エラー

パブリックIP経由で mysqlクライアントから作成したユーザーだと、後から作成した新しいデータベースの場合はアクセス権限がないためログインができません。

その場合はユーザーの権限の確認と必要な権限の付与を行う必要があります。

 

4. まとめ

今回ご紹介したような「権限の仕組み」を正しく理解しておくことで、Cloud SQL Studio は非常に簡単かつ便利に使用することができます。

セキュリティ設定を厳格に保ちたい本番環境と、スピードが求められる開発環境では、最適なユーザー管理手法も異なります。インスタンスのセキュリティ要件と運用の利便性を照らし合わせ、Cloud SQL Studio を使用する際は、自身の環境にとって最適な権限付与の形をぜひ検討してみてください。