Khi tạo một chức năng như thế này với một người sử dụng không phải là siêu Tôi nhận được báo lỗi dưới đây:LỖI: cho phép từ chối cho ngôn ngữ c
ERROR: permission denied for language c SQL state: 42501
Chức năng tạo ra là:
CREATE OR REPLACE FUNCTION dblink_connect (text)
RETURNS text
AS '$libdir/dblink','dblink_connect'
LANGUAGE C STRICT;
Nhưng nếu tôi muốn cấp quyền cho ngôn ngữ C cho người dùng không phải là siêu người dùng của tôi, tôi nhận được lỗi bên dưới: postgres=# grant usage on language c to caixa; ERROR: language "c" is not trusted
Điều đó có nghĩa, người dùng không phải siêu không thể tạo hàm bằng ngôn ngữ C? hoặc có điều gì khác tôi đang làm sai?
Có lẽ bạn không cần phải cấp 'USAGE' đặc ân cho 'vai trò caixa' một cách rõ ràng, bởi vì nó được trao cho' PUBLIC' (tất cả các vai trò) rồi. Chìa khóa ở đây là thuộc tính 'lanpltrusted' từ danh mục hệ thống' pg_language'. –