AiHummer
Türkmençe
GirmekŞahsy kabinet
v1.1.x
{ }Swagger

Setir derejesindäki howpsuzlyk

v1.1.x · täzelendi 2026-06-26

AiHummer köp ulanyjylary goldaýar we onuň iň güýçli izolýasiýa çägi özünde maglumatlar bazasynda ýerleşýär: **PostgreSQL Setir-Derejäli Howpsuzlyk (RLS)**RLS işjeňleşdirilen ýagdaýynda, bazadaky maglumatlar — diňe programmirleme kody däl — soragyň diňe häzirki tenant bilen baglanyşykly setirleri görmegine gözegçilik edýär.

Dereje: Setir derejeli howpsuzlyk tölenen bilen öňüni alýar Kärhana tier — bu mugt/Komunýet platformasynyň bölegi däl.

Näme üçin RLS

Programmanyň derejesindäki süzmeler (WHERE tenant_id = ...) zerur, ýöne gowşakdyr: ýatda saklanmadyk bir şert hatda maglumatlaryň tenantlar arasynda akmagyna sebäp bolup biler. RLS kepilligi PostgreSQL-e geçirýär, şonuň üçin süzülmedik sorag hem diňe häzirki tenantyň setirlerini gaýtarýar. Bu, programmanyň öz salgylaryny aşakdan goramagyň bir gatlagy bolup durýar. Giňişleýin köp-tenantlylyk modeli we onuň idempotent tarap-ýüz täsirleri bilen nähili utgaşýandygy barada, serediň Çoxugurlylyk we idempotentlik.

Çäklendirilen roly (önüne geçmek üçin saýlamak)

RLS bu azat taýdan gatnaşmak we eýe ýerine çäklendirilmiş roly ulanjak ikinji maglumatlar bazasy baglanyşygyny geçgeç berilmegi bilen işjeňleşdirilýär:

# /home/.aihummer/etc/gateway.env
# Owner pool — runs migrations, used for system/bypass operations
AIHUMMER_DATABASE_URL=postgres://owner:...@localhost/aihummer

# Restricted application pool — RLS policies apply (aihummer_app role)
AIHUMMER_DB_APP_URL=postgres://aihummer_app:...@localhost/aihummer

Şu aihummer_app roly däk tablisa eýesi, şonuň üçin PostgreSQL oňa RLS syýasatlaryny ulanýar. Programmanyň soraglary bu çäklendirilen hovuzdan akýar. RLS-i ýola goýmak, diňe bir sazlamak meselesidir AIHUMMER_DB_APP_URL — we lokal/standart (myhman-öz) gurnamalar şol üýtgeýijini awtomatiki ýagdaýda sazlaýar, şonuň üçin RLS öndeleşik bilen işjeňdir. Ol diňe ýöriteleşdirilen ýa-da el bilen ýerleşdiriş gurnalmaly diýen manyda “opt-in”dyr. AIHUMMER_DB_APP_URL özü.

[!NOTE] Syz AIHUMMER_DB_APP_URL, giriş gapysy ähli zat üçin eýe toplumyny ulanýar we RLS netijeli ýerine ýetirilmeýär. Çäklendirilen göwnejiň (bu standart gurnamaçyň siziň üçin edýänini) maglumatlar bazasy derejesindäki izolýasiýany ýola goýmak üçin.

[!IMPORTANT] RLS nyrh meýilnamasyna bagly däl. Ol Community hem goşmak bilen ähli meýilnamalarda birmeňzeş işleýär. Ygtyýarnama ekranynda «Setir derejesindäki howpsuzlyk» elýeterli däl görünse, bu şol ekranyň takyk däl ýeri, maglumatlar bazaňyzyň ýagdaýy däl.

RLS nirede eýýäm işjeň we nirede ony özüňiz açmaly

Nähili gurnadyňyz Gurnamadan soňky RLS
Adaty gurnama, PostgreSQL-i gurnaýjy taýýarlaýar Işjeň. Çäklendirilen rol we AIHUMMER_DB_APP_URL awtomat döredilýär
Öz ýa-da dolandyrylýan PostgreSQL (baza salgysy öňünden berlen) Işjeň däl. Roly we AIHUMMER_DB_APP_URL bahasyny operator döredýär
Administrator hukuklary bolmazdan gurnama (rootless) Işjeň däl. Şonuň ýaly

[!WARNING] RLS-i «açyk» görkezip, hiç zady goramaýan iki ýalňyşlyk. Birinjisi: AIHUMMER_DB_APP_URL tablisalaryň eýesini ýa-da super ulanyjyny görkezýär — PostgreSQL beýle rollary syýasatlardan boşadýar, derweze bolsa RLS-i şonda-da işjeň diýip habar berýär. Aýratyn çäklendirilen roly ulanyň. Ikinjisi: öz PostgreSQL-iňizde çäklendirilen rol çaklap bolýan parol bilen awtomat döräp biler — baza torda elýeterli bolmazdan öň oňa öz paroluňyzy beriň.

Her ýerleşim üçin diapazon kesgitleme

Haýyr-soragyň içinde, programma ilki bilen baglanyşygynda häzirki ýeri saýlaýar, soňra bolsa ýeri çäkli soraglary işledýär — düşünje taýdan db.WithTenant. Bir gezek kämilleşdirileninde, çäklendirilen roldaky RLS düzgünleri her okama we ýazma amalyny şol tölegçiniň setirleri bilen çäkliýär. Çäklendirme iş birligi bilen baglanyşyklydyr, şonuň üçin bir wagtyň özünde edilen soraglar arasynda akmaýar.

request ─▶ resolve tenant ─▶ db.WithTenant(tenant) ─▶ queries see only that tenant

Işçiler üçin ulgamyň / öwezini geçmek režimi

Käbir işleriň kanuny taýdan kireýiçi-ara ýa-da kireýiçden gara gara bolmagy mümkin — fon işçileri, rejesirleme programmalary, eltip bermekden gaýtarmak we ş.m. hyzmatlar üçin. Munlar üçin gapy ulanylýar ulgam (aýlaw) režimi bu eýe hovuzynda işläp, her müşderi RLS düzgünleriniň daşynda bolýar, şonuň üçin infrastruktura işleri maglumat toplumy boýunça işlemegi başaryp biler.

[!WARNING] Aşmak usuly diňe ynamdar içerki işgärler üçin. Sorag işlemek kod ýollary ulanyjynyň öňünden hereket edýän ädim hemişe çäklendirilenden geçmelidir, işgäri çäklendirilen hovuz — geçelme ýoly hiç haçan däldir.

Göçler eýe toplumunda işleýär

Eskiz üýtgeşmeleri çäklendirilen rolyň hukuklarynyň ýoklugy sebäpli talap edilýär, şonuň üçin migrasiýalar hemişe eýe bazasynda ýerine ýetirilýär (AIHUMMER_DATABASE_URL), başlangyç wagtynda maslahat beriji öňüni alyş bilen. Çäklendirilmiş aihummer_app rol diňe adaty programma traffigi üçin ulanylýar. Bu hukuk tapawudyny arassa saklaýar: skema üýtgetme operasiýalary eýe ulanylýar; tenant maglumatlaryna giriş RLS ulanylan çäklendirilen rol bilen amala aşyrylýar.

Indi nire?