Các nhà phát triển đồng nghiệp của tôi và tôi có lược đồ phát triển riêng của mình trên cơ sở dữ liệu phát triển MySQL được chia sẻ. Nhiệm vụ của tôi yêu cầu tôi tạo ra các trình kích hoạt trong lược đồ của tôi, nhưng tôi đã không thành công cho đến nay.Không thể tạo kích hoạt MySQL với đặc quyền TRIGGER trên 5.1.32
CREATE TRIGGER myTrigger AFTER DELETE on myTable
FOR EACH ROW BEGIN
-- DO STUFF
END;
MySQL nói: ERROR 1419 (HY000): Bạn không có đặc quyền SUPER và khai thác gỗ nhị phân được kích hoạt (bạn thể muốn sử dụng log_bin_trust_function_creators ít an toàn biến)
Tôi đã kiểm tra Hướng dẫn sử dụng MySQL (http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html):
Đặc quyền TRIGGER cho phép bạn tạo và thả trình kích hoạt. Bạn phải có đặc quyền này cho một bảng để tạo hoặc thả trình kích hoạt cho bảng đó. Đặc quyền này đã được thêm vào trong MySQL 5.1.6. (Trước MySQL 5.1.6, hoạt động kích hoạt yêu cầu đặc quyền SUPER.)
Chúng tôi đang chạy "5.1.32-enterprise-gpl-advanced-log", vì vậy đặc quyền TRIGGER phải đủ; tuy nhiên, DBA đã cấp cho tôi đặc quyền TRIGGER trên mySchema
. * và tôi có thể nhìn thấy nó khi tôi HIỂN THỊ GRANTS ;, nhưng tôi vẫn nhận được lỗi này về việc cần đặc quyền "SUPER". Chúng tôi không muốn cung cấp cho tất cả các nhà phát triển SUPER.
Mọi đề xuất?
Cảm ơn bạn đã liên kết. DBA sẽ chạy bằng cách sử dụng tùy chọn log-bin-trust-function-creator trên máy chủ dev thay vì đưa ra SUPER. –
Lỗi MySQL # 52127 nói rằng bạn không thể cho phép người dùng thêm trình kích hoạt mà không cấp quyền sở hữu SUPER nếu bạn đã bật tính năng ghi nhật ký nhị phân. –
Điều đáng nói đến là lỗi này thực sự rất hữu ích đôi khi nếu bạn đang sử dụng nhân rộng, vì nó có thể ngăn cản bạn vô ý tạo trình kích hoạt sẽ không hoạt động trong thiết lập sao chép. Một ví dụ về điều này sẽ là nơi bạn đang sử dụng một cái gì đó như RAND() như là một phần của kích hoạt. – coatesap