データベース
データベース接続の 3 経路、行レベルセキュリティのポリシー設計の規約、SECURITY DEFINER 関数の扱いと、その遵守を数えた結果を示します。
図
見どころ
各ルールの隣に遵守状況の数(違反 0 件など)を置き、「決めた」ではなく「守られている」ことを数えて示しています。
ルール・それを守る仕組み・破ったときに失敗する検査を 1 行ずつ対応させ、規約を文書ではなく機械に守らせています。
図で見るバックエンドは 1 リクエスト = 1 トランザクションを基本とし、同期で外部と通信する処理だけを準備・実行・確定の 3 段に分けます。
図で見る行レベルセキュリティのポリシー 103 本がすべて命名と対象ロール明示の規約に従うことを、宣言と本番の両方で数えています。
自動検査 102 本を 9 群に整理し、検査の取りこぼしを見つけるための検査まで置いています。
図で見る
ページ
- 1フロントエンド
レイヤ構造と機能単位のフォルダ(features)の一方向参照、データ取得と状態管理の置き場所を、それを守る検査と対にして示します。
- 2バックエンド
クリーンアーキテクチャの 4 層とトランザクション境界、エラー体系と監査ログの規律を、ESLint による層境界の強制とともに示します。
- 3データベース
データベース接続の 3 経路、行レベルセキュリティのポリシー設計の規約、SECURITY DEFINER 関数の扱いと、その遵守を数えた結果を示します。
- 4規約の機械的強制
自動検査 102 本の全体像と、コードの外(文書・CI 定義・ツール設定)を対象にする検査、生成物の差分検査を示します。
あわせて読む図
- ER 図(全体俯瞰)
行レベルセキュリティの規約が、テーブルごとにどう効いているかを示す図です。
- セキュリティ・認可アーキテクチャ図
同じ行レベルセキュリティを、防御の 1 層として見た図です。
ダウンロード
- draw.io の原本(全ページ)1.2 MB
- PNG(このページ)0.6 MB
- SVG(このページ)0.4 MB
操作方法
- マウス
ドラッグで移動できます。Ctrl(Mac は ⌘)を押しながらのホイールと、トラックパッドのピンチで拡大・縮小できます。図をクリックした後は、ホイール(トラックパッドは指 2 本)で拡大した図を動かせます。
ダブルクリックでその位置を原寸にし、原寸以上ではさらに拡大します。
- タッチ
指 2 本でピンチと移動ができます。指 1 本は画面のスクロールです。
全画面にすると、指 1 本で移動できます。
- キーボード
- ←↑→↓移動(Shift で大きく)
- +-拡大・縮小
- 0全体表示
- 1原寸
- F全画面
- PageUpPageDown前後のページ
- ?操作方法
- Esc全画面を閉じる(全画面でないときは操作を終える)