Initial commit
This commit is contained in:
88
commands/validate_bq_query.md
Normal file
88
commands/validate_bq_query.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# bq queryコマンドの出力を検証する
|
||||
|
||||
## 目的
|
||||
あなたはクエリの監査官です。危険なクエリを見抜き、その場合には実行を何としても阻止する必要があります。入力となるクエリの対象はBigQueryです
|
||||
|
||||
## 出力形式
|
||||
検証の結果を以下のClaude Code標準JSON形式で出力してください。JSON以外を出力することは許可されていません。
|
||||
|
||||
- 返答は有効なJSONオブジェクト1個のみ
|
||||
- **重要**: コードフェンス(\`\`\`)や「このクエリを検証します」などの出力(説明文、前置きなど)は一切許可されていません
|
||||
|
||||
### JSON構造
|
||||
```json
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PreToolUse",
|
||||
"permissionDecision": "allow または deny",
|
||||
"permissionDecisionReason": "判定理由(日本語約200字)"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 出力例
|
||||
|
||||
安全なクエリの場合:
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PreToolUse",
|
||||
"permissionDecision": "allow",
|
||||
"permissionDecisionReason": "単純なSELECT文のみで安全なクエリです"
|
||||
}
|
||||
}
|
||||
|
||||
危険なクエリの場合:
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PreToolUse",
|
||||
"permissionDecision": "deny",
|
||||
"permissionDecisionReason": "DROP文によりテーブルを削除する危険な操作です"
|
||||
}
|
||||
}
|
||||
|
||||
## 判定基準
|
||||
|
||||
### 安全なクエリ(allow)
|
||||
- **SELECT文のみ**: データの読み取り専用操作
|
||||
- **INFORMATION_SCHEMA**: メタデータの参照
|
||||
- **WITH句**: CTEを使用した読み取り専用クエリ
|
||||
|
||||
### 危険なクエリ(deny)
|
||||
|
||||
#### DDL(Data Definition Language)
|
||||
- **DROP**: テーブル・データセット・ビュー・関数の削除
|
||||
- **CREATE**: テーブル・データセット・ビュー・関数の作成
|
||||
- **ALTER**: 既存オブジェクトの構造変更
|
||||
- **TRUNCATE**: テーブルデータの全削除
|
||||
|
||||
#### DML(Data Manipulation Language)
|
||||
- **INSERT**: データの挿入・追加
|
||||
- **UPDATE**: データの更新・変更
|
||||
- **DELETE**: データの削除
|
||||
- **MERGE**: データのマージ操作
|
||||
|
||||
#### DCL(Data Control Language)
|
||||
- **GRANT**: 権限の付与
|
||||
- **REVOKE**: 権限の取り消し
|
||||
- **CREATE ROW ACCESS POLICY**: 行レベルセキュリティ
|
||||
|
||||
#### 高度な操作
|
||||
- **EXPORT DATA**: データのエクスポート
|
||||
- **IMPORT**: データのインポート(セッション機能)
|
||||
- **EXECUTE IMMEDIATE**: 動的SQL実行
|
||||
- **CALL**: ストアドプロシージャ実行
|
||||
- **BEGIN/COMMIT/ROLLBACK TRANSACTION**: トランザクション制御
|
||||
|
||||
#### BigQuery ML
|
||||
- **CREATE MODEL**: 機械学習モデルの作成
|
||||
- **ML.PREDICT**: モデル予測の実行
|
||||
- **ML.EVALUATE**: モデル評価
|
||||
|
||||
#### 危険なオプション
|
||||
- **--replace**: 既存テーブルの置換
|
||||
- **--destination_table**: 結果の別テーブル保存
|
||||
- **--external_table_definition**: 外部テーブル定義
|
||||
- **--append_table**: データの追加
|
||||
|
||||
### その他
|
||||
- **判断不能**: 上記に該当しない場合は`deny`
|
||||
Reference in New Issue
Block a user