はじめに
最近、Azure Cloud ShellでPostgreSQLに接続して検証作業をすることがあり、その際に接続できなくて躓いたので備忘録としてPostgreSQLの接続の仕方と検証時に使用した基本的なコマンドについて記事にします。
かなり初歩的な内容となっていますので、初心者向けです。
前提条件
Azure環境上に既にPostgreSQLが構築されていることを前提としています。
Azure Cloud ShellでPostgreSQLに接続してみる
-
Azure portal上でアイコンを選択して、Azure Cloud Shellを開く。
Azure Cloud Shellが立ち上がるととこんな画面になります。↓
※初めてCloud Shellを使用する際にはストレージアカウントの作成が必要になります。初回だけ必須の作業になりますので、作成しておきましょう。 -
接続文字列のpsqlをもとにコマンドを作成し、PostgreSQLに接続します。
psqlのサーバー名やサーバー管理者名などはプロパティで確認できますので、先にメモしておくと楽ですね。
コマンド実行すると画像のようにDB名が表示されます。
今回はpsqlでDB名postgresを指定したので、無事接続できたことが分かります。↓
※ちなみに・・・
ファイアウォール規則が設定できていないと下の画像のように弾かれます。
対処法として「entry for host」の後ろのIPアドレスをファイアウォール規則に追加すると接続できます。
基本的なコマンド
一覧表示
¥l
…データベース一覧の表示
¥d
…テーブル、ビュー、シーケンス一覧の表示
¥dg
…ロール一覧の表示
¥dn
…スキーマ一覧の表示
¥dp
or ¥z
…テーブル、ビュー、シーケンスのアクセス一覧表示
データ取得
SELECT * FROM table_name
…指定したテーブル名のテーブル内の全てのカラム(*)からデータを取得。
SELECT column1 FROM table_name
…指定したテーブル名のテーブル内のcolumn1からデータを取得。
権限付与
GRANT 権限 ON 対象 TO ロール名
…指定したロール名に対して権限を付与。
※対象にはテーブル、データベース、スキーマなどが入りますが、付与する権限によって指定できる対象も変わります。
基本的な権限としては以下の通りです。
SELECT
テーブルやビューのデータ取得権限※UPDATE、DELETEしたい場合にも必要。
UPDATE
テーブルのデータ更新権限
DELETE
テーブルのデータ削除権限
CREATE
スキーマやオブジェクト(テーブルやビュー)の作成権限
USAGE
対象をスキーマにした場合、オブジェクトのアクセス権限、それ以外の場合は対象によって対応する権限
権限削除
REVOKE 権限 ON 対象 FROM ロール名
…指定したロール名から権限を削除。
権限の種類はGRANTと同様。
おわりに
今までDBに触れてこなかった(そもそもCLIの作業自体慣れていない)ので、Azure Cloud Shellに接続するだけで一苦労でした…同じようにAzureを触り始めたばかりで勉強中の方の参考になれば幸いです。