В PostgreSQL учет привилегий ведется при помощи списков управления доступом (access control lists, ACL). Информация, хранящаяся в этих списках, указывает, каким пользователям разрешена выборка, обновление и другие способы модификации объектов в базе данных. Для всех объектов баз данных PostgreSQL (таблиц, представлений и последовательностей) существует набор привилегий и ограничений доступа. Суперпользователи и владельцы объектов изменяют ACL при помощи пары команд SQL: GRANT и REVOKE.
Как было сказано в главе 9, когда пользователь создает базу данных, он косвенно становится владельцем этой базы. Аналогичный принцип распространяется и на другие объекты: они также принадлежат пользователю, который ввел соответствующую команду SQL CREATE.
Если не считать суперпользователей PostgreSQL, которым разрешены любые операции с любыми объектами данных, только владельцы объектов могут предоставлять и отзывать привилегии для принадлежащих им объектов. Хотя к базе данных может подключиться любой пользователь, для получения доступа к объектам базы он должен обладать специально предоставленными привилегиями.