PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Không thể bỏ vai trò PostgreSQL. Lỗi:`không thể bỏ vì một số đối tượng phụ thuộc vào nó`

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:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Biến chứa số hàng bị ảnh hưởng bởi DELETE trước đó? (trong một hàm)

  2. Sắp xếp lại bản ghi PostgreSQL bằng cách sử dụng Cập nhật với một lựa chọn phụ

  3. Ứng dụng Heroku push of django không có mô-đun nào có tên psycopg2.extensions

  4. Bắt ngày với chênh lệch múi giờ

  5. Chuyển đổi Tập hợp kết quả từ Mảng SQL thành Mảng chuỗi