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

Cấp quyền cho người dùng đối với ALTER một chức năng

hướng dẫn sử dụng ALTER FUNCTION rõ ràng về điều đó:

Nhấn mạnh của tôi.
Bạn cũng cần một vài đặc quyền cơ bản để tạo các hàm. Theo tài liệu:

Giải pháp đơn giản sẽ là thực hiện các thay đổi đối với các chức năng như superuser . (Siêu người dùng mặc định là postgres , nhưng bất kỳ người dùng nào có thể trở thành siêu người dùng.)

Nếu bạn thực sự cần phải thay đổi quyền sở hữu trên tất cả các chức năng, điều này sẽ thực hiện thủ thuật:

SELECT string_agg('ALTER FUNCTION '
            || quote_ident(n.nspname) || '.' 
            || quote_ident(p.proname) || '(' 
            || pg_catalog.pg_get_function_identity_arguments(p.oid)
            || ') OWNER TO foo;'
          , E'\n') AS _sql
FROM   pg_catalog.pg_proc p
JOIN   pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE  n.nspname = 'public';
-- AND p.relowner <> (SELECT oid FROM pg_roles WHERE rolname = 'foo')
-- AND p.proname ~~ 'f_%'

Bị hạn chế đối với public giản đồ.
Để biết thêm chi tiết và giải thích, hãy tham khảo câu trả lời đầy đủ hơn này trên dba.SE .
Cũng có liên quan chặt chẽ:
DROP FUNCTION mà không biết số lượng / loại tham số?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao giao dịch PostgreSQL này đưa ra CẢNH BÁO:không có giao dịch nào đang diễn ra

  2. Nhà cung cấp dịch vụ đám mây Deep-Dive:PostgreSQL trên Microsoft Azure

  3. Sự khác biệt giữa kiểu dữ liệu Bit và Boolean trong PostgreSQL

  4. Làm cách nào để lọc các hàng trên các giá trị lồng nhau trong một cột json?

  5. Cách sử dụng homebrew để hạ cấp postgresql từ 10.1 xuống 9.6 trên Mac OS