Tôi cần một sự kiện kích hoạt sự kiện trên cơ sở dữ liệu Postgres của RDS của mình. Cuối cùng, tôi cần được thông báo bất cứ khi nào có thay đổi đối với giản đồ. Trong Postgres cũ (ví dụ: một cá thể không RDS), nó hoạt động tốt. Tuy nhiên, trong RDS chạy như sau:Tạo Trình kích hoạt Sự kiện Postgres trong AWS-RDS
CREATE EVENT TRIGGER audit ON ddl_command_start EXECUTE PROCEDURE stat_audit();
Kết quả trong:
ERROR: permission denied to create event trigger
HINT: Must be superuser to create an event trigger.
Theo như tôi hiểu được vai trò đặc quyền nhất trên RDS là rds_superuser. Tôi đã cấp rds_superuser cho tài khoản của mình (ví dụ: grant rds_superuser to someuser;
). Tuy nhiên, tôi vẫn không thể tạo trình kích hoạt sự kiện. Tôi hiểu rằng rds_superuser không phải là vai trò chính xác giống như siêu người dùng pg (có thể được xác nhận bằng cách chạy: SHOW is_superuser
hoặc SELECT * FROM pg_user
). Tôi cũng hiểu tại sao RDS có thể khóa các đặc quyền siêu người dùng thực sự, nhưng có vẻ như một giới hạn khá đáng kể nếu tôi không thể truy cập trình kích hoạt sự kiện. Tui bỏ lỡ điều gì vậy? Có thể đặt trình kích hoạt sự kiện trong Postgres trên RDS không? Nếu không, có cách nào khác để bắt chước chức năng tương tự không? Tôi biết RDS Thông báo sự kiện, nhưng dường như không có bất kỳ tùy chọn nào để đăng ký các sự kiện thay đổi giản đồ.
cùng một vấn đề ở đây:/Bạn đã tìm thấy giải pháp nào? – arod
@arod nghiên cứu của tôi trong cộng đồng (bao gồm cả amazon) không tìm thấy tùy chọn nào. Trong khi tôi không tìm thấy bất cứ điều gì cụ thể nói rằng điều này là không thể trong RDS. Dường như bạn cần một người dùng siêu pg để đặt trình kích hoạt sự kiện pg. Trong RDS, điều này là không thể (chỉ rds_superuser). Tôi bị buộc phải đi một con đường khác. – scottjustin5000
bạn đã đi theo tuyến đường nào? – arod