术语表

什么是行级安全?

行级安全(RLS)是一项数据库功能,它逐行决定每位用户被允许读取或修改哪些记录,因此即使应用请求更多数据,客户也只能看到自己的订单。

如果没有它,“用户只能看到自己的数据”这一规则就存在于应用的代码中。只要某个界面或API忘记检查,私人数据就可能泄露。

使用行级安全时,规则存在于数据库本身。你可以编写这样的策略:“只有当orders表中行的customer_id与已登录用户匹配时,该行才可见”,数据库会对每次查询都应用该策略。

Postgres支持行级安全,一些后端服务也大量依赖它,因为它们的应用直接从浏览器与数据库通信。在这类架构中,没有策略的表可能被任何人读取。

行级安全只是一层保护,而非唯一的保护。应用仍然需要完善的登录、服务器端检查,以及对管理员访问的谨慎处理。

示例

  • 门户中的客户只能看到自己的文档
  • 工具中的每个团队只能看到自己的项目

常见问题

我需要行级安全吗?

如果你的应用为众多用户存储私人数据,并且其中任何部分直接从浏览器查询数据库,那就需要。如果所有访问都通过会检查权限的后端,那么行级安全只是额外的安全网。

行级安全和角色是一回事吗?

不是。角色描述某人属于哪一类用户,例如管理员或普通成员。行级安全则利用用户ID或角色等信息,决定他们可以访问哪些具体的行。

另请参阅

  • 如何添加基于角色的访问控制
  • AI构建应用的安全检查清单

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · 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 繁體中文(香港) 繁體中文(台灣)