2016-03-22 17 views
5

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 đồ.

+0

cùng một vấn đề ở đây:/Bạn đã tìm thấy giải pháp nào? – arod

+0

@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

+0

bạn đã đi theo tuyến đường nào? – arod

Trả lời

1

Tôi biết đây là một câu hỏi cũ nhưng điều này dường như được hỗ trợ ngay bây giờ.

phiên bản PostgreSQL 9.4.9 và sau này và phiên bản 9.5.4 và sau đó kích hoạt sự kiện hỗ trợ, và Amazon RDS hỗ trợ sự kiện gây cho các phiên bản này. Bạn có thể sử dụng tài khoản người dùng chính để tạo, sửa đổi, đổi tên và xóa trình kích hoạt sự kiện. Trình kích hoạt sự kiện là ở cấp độ cá thể DB , vì vậy chúng có thể áp dụng cho tất cả các cơ sở dữ liệu trên một cá thể. Để biết thêm thông tin về các trình kích hoạt sự kiện PostgreSQL trên Amazon RDS, hãy xem Trình kích hoạt sự kiện cho PostgreSQL trên Amazon RDS.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.EventTriggers

Các vấn đề liên quan