Bạn phải hiểu rằng trong người dùng PostgreSQL là cho mỗi cụm cơ sở dữ liệu. @ Michael đã chứng minh làm thế nào để có được một danh sách những người. Vì vậy, trừ khi bạn hạn chế quyền đối với một cơ sở dữ liệu cụ thể một cách rõ ràng với REVOKE
và GRANT
, tất cả người dùng trong cụm có quyền truy cập cơ bản vào bất kỳ cơ sở dữ liệu nào trong cụm.
Để xác định, cho dù một cụ dùng thực sự có một đặc ân nào đó ('CONNECT') cho một cơ sở dữ liệu:
has_database_privilege(user, database, privilege)
Thông tin thêm về privilege functions in the manual.
Để xác định tất cả các đặc quyền cụ thể cho một cụ thể cơ sở dữ liệu:
SELECT datname, datacl
FROM pg_database
WHERE datname = 'mydb';
Bạn nhận được NULL
cho datacl
nếu không có hạn chế cụ thể được áp dụng.
Ngoài ra, bạn có thể giới hạn quyền truy cập cho mỗi cơ sở dữ liệu và cho mỗi người dùng trong tệp pg_hba.conf
. Đó là ở cấp độ thấp hơn. Người dùng thậm chí không thể kết nối, nếu pg_hba.conf
sẽ không cho phép anh ta, ngay cả khi cơ sở dữ liệu chính nó sẽ cho phép truy cập.
Nguồn
2012-01-19 13:18:03
@ Michael, cảm ơn rất nhiều sự trợ giúp. –
Bạn được chào đón. –