Giới thiệu về Role và Permission trong Supabase
Khi xây dựng ứng dụng web hoặc mobile, một trong những vấn đề quan trọng nhất là kiểm soát ai được làm gì. Đó chính là lúc khái niệm Role và Permission phát huy tác dụng. Supabase, với nền tảng Postgres mạnh mẽ, cung cấp một hệ thống quản lý quyền hạn linh hoạt, cho phép bạn bảo mật dữ liệu một cách hiệu quả. Bài viết này sẽ hướng dẫn bạn từng bước thiết lập và quản lý role, permission trong Supabase, giúp ứng dụng của bạn vừa an toàn vừa dễ mở rộng.
Cơ bản về Role và Permission
Trong Postgres (và Supabase), role là một thực thể có thể sở hữu quyền hạn (permission) để truy cập hoặc thao tác trên database. Mỗi role có thể đại diện cho một người dùng, một ứng dụng, hoặc một nhóm người dùng. Permission quy định role đó được phép thực hiện những hành động nào—chẳng hạn như SELECT, INSERT, UPDATE, DELETE trên một bảng cụ thể.
Supabase tự động tạo một vài role mặc định như authenticated (cho người dùng đã đăng nhập) và anonymous (cho người dùng chưa đăng nhập). Bạn có thể tạo thêm role tùy chỉnh để phù hợp với nhu cầu ứng dụng, ví dụ như editor, admin, hoặc moderator.
Tạo và Quản lý Role trong Supabase
Để tạo role mới, bạn có thể sử dụng SQL Editor trong Supabase dashboard. Ví dụ:
-- Tạo role editor
CREATE ROLE editor;
-- Cấp quyền login cho role
ALTER ROLE editor WITH LOGIN;
Nếu bạn muốn role này thuộc một nhóm (ví dụ: authenticated), bạn có thể gán như sau:
GRANT authenticated TO editor;