DROP USER
(hoặc DROP ROLE
, điều tương tự) không thể tiếp tục trong khi vai trò vẫn sở hữu bất kỳ thứ gì hoặc có bất kỳ đặc quyền nào được cấp trên các đối tượng khác.
Loại bỏ tất cả các đặc quyền với DROP OWNED
(từ ngữ không quá rõ ràng) . Hướng dẫn sử dụng:
Vì vậy, chuỗi lệnh đáng tin cậy để loại bỏ một vai trò là:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Chạy cả hai lệnh trong mọi cơ sở dữ liệu của cùng một cụm trong đó vai trò sở hữu bất kỳ thứ gì hoặc có bất kỳ đặc quyền nào!
Và cuối cùng:
DROP USER ryan;
-
REASSIGN OWNED
thay đổi quyền sở hữu đối với tất cả các đối tượng hiện do vai trò sở hữu. -
DROP OWNED
sau đó chỉ thu hồi các đặc quyền (hết quyền sở hữu).
Ngoài ra, bạn có thể bỏ qua REASSIGN OWNED
. Sau đó, DROP OWNED
sẽ (cũng) bỏ tất cả các đối tượng do người dùng sở hữu. (Bạn có chắc không ?!)
Có liên quan:
- Bỏ vai trò có đặc quyền (có chức năng tạo lệnh cho tất cả các DB có liên quan)
- Tìm các đối tượng được liên kết với vai trò PostgreSQL