ADR-001: Access and RLS
Төлөв: батлагдсан (2026-10-14) · Хэрэгжүүлэлт: modules/ · Тест: modules/
This page has not been translated yet — it is shown in Mongolian, the language it is written in.
RelatedArchitecture
01Шийдвэр
- Nexus-ийн
tenant_policy-г хэвээр үлдээнэ. Түгээх компани зөвхөн өөрийн мөрийг уншиж, бичнэ.isolation - Байгууллага дамнасан хандалт бол тусдаа, зөвхөн SELECT хийх permissive
granted_readpolicy. Permissive учраасtenant_-тай OR-оор нийлнэ. Grant нь хэзээ ч бичих эрх олгохгүй.isolation - Эрхийн эх сурвалж нь
authz.хүснэгт (ADR-006: PostgreSQL schema). Grant-ыг өгөгдлийн эзэн өөрөө олгоно. Бүх эзэмшигчийн өгөгдлийг хамарсан ALL grant (ЭХЗХ) зөвхөн платформын замаар (access_ grant gerege_) үүснэ.nexus_ api authz.нь SECURITY DEFINER функц. Session-ийscope(action) app.болонcurrent_ tenant app.-д таарах хүчинтэй grant-уудыг массив болгож буцаана. TOPOLOGY grant-ыг тухайн өдрийн topology-оор доош задална. Policy функцийгcurrent_ user (SELECT …)дотор дууддаг тул InitPlan болж, statement бүрт нэг удаа тооцогдоно (EXPLAIN-дloops=1).- Мөр бүр зөвхөн өөрөөсөө өргөн буюу тэнцүү хүрээтэй grant-д харагдана:
- METERING_POINT grant нь трансформаторыг харуулахгүй;
- TOPOLOGY grant нь бүсийг болон үндэс node-оос дээших холбоосыг харуулахгүй.
02Хойшлуулсан зүйл
- Scope cell: заалтын хүснэгт гарах үед EXPLAIN-аар хэмжиж нэмнэ. Бүртгэлийн хүснэгтүүд жижиг тул одоогоор хэрэггүй.
data_:from/ data_ until authz.scope()эдгээрийг буцаадаг. Харин бүртгэлийн хүснэгт хугацааны цуваа биш тул одоохондоо хэрэглэхгүй. Заалтын policy үүнийг ашиглана.- Байгууллага доторх хэрэглэгчийн хүрээг нарийсгах (инженер зөвхөн өөрийн бүс): restrictive policy шаардана, команд нэмэгдэх үед хийнэ.
- pgTAP-ийн оронд Go integration тест: CI-ийн
authzjob бодит Postgres 16 дээр migrate хийгээд тестийг ажиллуулна. Нэмэлт extension шаардлагагүй.
03Итгэлийн хязгаар
Аппын DB хэрэглэгч app.* утгыг өөрөө тавьж чадна. Тиймээс энэ хамгаалалт аппын алдаанаас хамгаална, эвдэрсэн аппаас биш (GS §17.5). Функц эзэмшигч superuser биш бол FORCE RLS функцийг юу ч харахгүй болгоно. Өөрөөр хэлбэл энэ тохиолдолд эрх нээгдэхгүй тал руу унана.
Was this page helpful?Your answer helps improve the docs.