psqlユーティリティコマンド
Redshiftにpsqlクライアントで接続している場合、以下のようなメタコマンドも便利です。
\d: テーブル、ビュー、スキーマの一覧を表示します。
\d <テーブル名>: 特定のテーブルの定義(列、型)を表示します。
\q: psqlセッションを終了(切断)します。
STL(System Table Log)ビュー:履歴ログ過去に実行されたイベントやエラーの履歴情報を確認するのに使われます。
STLビュー取得できる情報主な用途STL_QUERY実行されたすべてのクエリの履歴。実行時間、ユーザー、ステータスの確認。
STL_LOAD_ERRORSCOPYコマンド実行時のエラー詳細。データロード時のトラブルシューティング。STL_ERRORクエリ実行中に発生した一般的なエラーの履歴。エラー原因の特定。
STL_WLM_QUERYWLM(ワークロード管理)ごとのクエリの履歴。キュー待機時間やリソース消費の分析。
SVV/STVビュー:リアルタイム監視とメタデータ現在のクラスタ状態やテーブルのメタデータを確認します。
SVV/STVビュー取得できる情報主な用途
STV_INFLIGHT現在実行中のクエリ一覧。処理遅延の原因特定、CANCEL 対象の特定。
SVV_TABLE_INFOテーブルの分散、ソート、統計情報の鮮度 (STATS_OFF)。
VACUUM/ANALYZEの必要性の判断。PG_TABLE_DEFテーブルのスキーマ定義(列名、型)。テーブル構造の確認。
権限確認コマンド
特定のユーザーがどのオブジェクトに対してどのような権限を持っているかを確認する際に使用します。
- has_*_privilege 関数による確認
特定の権限があるか (t)、ないか (f) を確認する最も簡単な方法です。
SQL
-- テーブルに対するSELECT権限を確認
SELECT has_table_privilege('ユーザー名', 'テーブル名', 'select');
-- スキーマに対するUSAGE権限を確認
SELECT has_schema_privilege('ユーザー名', 'スキーマ名', 'usage');
2. SHOW GRANTS による確認
特定のオブジェクトに付与されているすべての権限を一覧表示します。
SQL
<```
code>
-- テーブルに付与されている権限を確認
SHOW GRANTS ON TABLE テーブル名;
-- スキーマに付与されている権限を確認
SHOW GRANTS ON SCHEMA スキーマ名;
3. システムビューによる包括的な確認
ユーザー、グループ、オブジェクト間の権限付与を広く確認したい場合に便利です。
SQL
-- 特定のユーザーに付与されているテーブル権限すべてを確認
<```
code>
SELECT *
FROM svv_relation_privileges
WHERE identity_name = '確認したいユーザー名';