Các phiên bản trước của Postgres và một số hệ thống DB khác, có các khái niệm riêng biệt về "nhóm" (được cấp quyền truy cập vào các đối tượng cơ sở dữ liệu) và "người dùng" (người có thể đăng nhập và là thành viên của một hoặc nhiều nhóm).
Trong các phiên bản hiện đại của Postgres, hai khái niệm đã được hợp nhất:một "vai trò" có thể có khả năng đăng nhập, khả năng "kế thừa" từ các vai trò khác (như người dùng là thành viên của một nhóm hoặc một nhóm là thành viên của một nhóm khác) và quyền truy cập vào các đối tượng cơ sở dữ liệu.
Để thuận tiện, nhiều công cụ và hướng dẫn sử dụng đề cập đến bất kỳ người dùng nào có quyền đăng nhập là "người dùng" hoặc "vai trò đăng nhập", và bất kỳ người dùng nào không có quyền là "nhóm" hoặc "vai trò nhóm", vì thông lệ hữu ích và phổ biến là giữ nguyên cấu trúc đó. Đây hoàn toàn là quy ước thuật ngữ và để hiểu các quyền, bạn chỉ cần hiểu các tùy chọn có sẵn khi tạo vai trò và cấp cho họ quyền truy cập .
Một lần nữa hoàn toàn để thuận tiện, Postgres vẫn chấp nhận các lệnh sử dụng thuật ngữ cũ, chẳng hạn như CREATE USER
và CREATE GROUP
cả hai đều là bí danh cho CREATE ROLE
. Nếu bạn viết CREATE USER
, LOGIN
quyền sẽ được thêm vào vai trò mới theo mặc định, để mô phỏng hành vi cũ khi đó là một lệnh riêng biệt.