[第36回] 参照は許可しファイル出力は別に管理する
2026年11月9日
配送確認は画面参照で十分な場合もあり、ファイル取得は業務別に許可したいと思った。
まず3件をCSV取得し、同じ権限のCan Exportだけを切って違いを確認した。
まず参照と出力を両方許可する
Web Export LabとLab - Web Export Controlを作り、SQLのSelectを選んでFunctionsの Can Exportを有効にした。Can ImportとCan Copy To Clipboardは無効のままだ。

開発者へ付与し、Webエディターで以前の架空注文3件を使った。
CSVで注文3件を確認する
27001〜27003の状態・金額が返り、Exportも使えた。

Exportで CSV Fileを選び、先頭行に列名を入れて実行した。

ZIP内export.csvは三列と3件を含み、27002のSHIPPED・18500.00を含めすべて画面と一致した。

Can Exportだけを無効にする
切断後に管理者で権限を開き、Selectを維持して Can Exportだけを解除して保存した。対象やSQL権限は変更していない。

開発者で再接続し同じSQLで番号・状態・金額を取得した。
注文は見え、Exportは無効になる
同じ3件が返ったが、上部と結果グリッドのExportは灰色で開けなかった。

再参照も成功し、注文確認を続けながらファイル取得は別権限で管理できた。
出力記録も確認する
Query Auditには人・接続で絞ると参照3と出力1の計4件があった。
CSV取得時の記録は Export Dataで、詳細に人、接続、権限、Web Editor、テーブル、SQL、成功が確認できた。

必要注文の参照を維持し、Web出力だけを別に許可できた。実行履歴もあり、業務に合わせた利用範囲を管理しやすかった。
QueryPie Community 11.6.7・MySQL 8.0.42のWeb SQLで実習注文を使った。終了後は今回の権限だけ回収し、既存データと権限は維持した。
参考: Privilege Type · Web SQLエディター · Query Audit
![[第35回] WHEREを忘れたUPDATEとDELETEを止める](/assets/content/acp-lab-notes/prevent-unsafe-sql/01.webp)
![[第37回] SQL承認前に実行計画も確認する](/assets/content/acp-lab-notes/sql-execution-plan/01.webp)