واژه‌نامه

امنیت سطح ردیف (RLS) چیست؟

Row-level security (RLS) امکانی در پایگاه داده است که ردیف به ردیف تعیین می‌کند هر کاربر مجاز است کدام رکوردها را بخواند یا تغییر دهد، تا یک مشتری فقط سفارش‌های خودش را ببیند، حتی اگر اپ بیشتر درخواست کند.

بدون آن، قانون «کاربران فقط داده خودشان را ببینند» در کد اپ قرار دارد. اگر یک صفحه یا API بررسی را فراموش کند، داده خصوصی می‌تواند لو برود.

با row-level security، قانون در خود پایگاه داده قرار می‌گیرد. یک سیاست می‌نویسید مثل «یک ردیف در orders فقط وقتی دیده می‌شود که customer_id آن با کاربر واردشده یکی باشد»، و پایگاه داده آن را روی هر پرس‌وجو اعمال می‌کند.

Postgres از row-level security پشتیبانی می‌کند و بعضی سرویس‌های بک‌اند به آن زیاد تکیه دارند، چون اپ‌هایشان مستقیم از مرورگر با پایگاه داده صحبت می‌کنند. در چنین تنظیماتی، جدولی که سیاست ندارد ممکن است برای هرکسی قابل خواندن باشد.

RLS یک لایه حفاظت است، نه تنها لایه. اپ‌ها همچنان به ورود درست، بررسی‌های سمت سرور و مدیریت دقیق دسترسی مدیر نیاز دارند.

نمونه‌ها

  • مشتریان در یک پورتال فقط مدارک خودشان را می‌بینند
  • هر تیم در یک ابزار فقط پروژه‌های خودش را می‌بیند

پرسش‌ها

آیا به row-level security نیاز دارم؟

اگر اپ شما داده خصوصی برای کاربران زیاد ذخیره می‌کند و بخشی از آن مستقیم از مرورگر پایگاه داده را پرس‌وجو می‌کند، بله. اگر همه دسترسی‌ها از یک بک‌اند می‌گذرد که مجوزها را بررسی می‌کند، RLS یک شبکه ایمنی اضافی است.

آیا row-level security همان نقش‌ها (roles) است؟

نه. نقش‌ها مشخص می‌کنند کاربر چه نوعی است، مثل مدیر یا عضو. Row-level security از اطلاعاتی مثل شناسه یا نقش کاربر استفاده می‌کند تا تعیین کند او به کدام ردیف‌های مشخص دسترسی دارد.

ببینید همچنین

  • چطور کنترل دسترسی مبتنی بر نقش را اضافه کنیم
  • چک‌لیست امنیت برای اپ‌های ساخته‌شده با هوش مصنوعی

Mythex · Pricing · با هوش مصنوعی هر چیزی بسازید · قالب‌های وب‌سایت و اپلیکیشن · مقایسه‌ی Mythex · واژه‌نامه‌ی ساخت اپلیکیشن با هوش مصنوعی · ابزارهای رایگان ساخت اپلیکیشن با هوش مصنوعی · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)