Pada titik ini, tidak ada hak untuk memberikan, itu dikodekan ke superuser. Itu telah dibahas di milis akhir-akhir ini, dan dapat berubah menjadi 9,5 jika seseorang menemukan waktu untuk mengerjakannya.
Sebagai solusinya, Anda bisa membuat SECURITY DEFINER
fungsi yang dimiliki oleh superuser, dan menjalankan kueri yang Anda inginkan. Ini akan memungkinkan non-pengguna super untuk melihat konten pg_stat_activity
dengan memanggil fungsi.
Misalnya, jalankan sebagai pengguna super:
CREATE FUNCTION get_sa() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;
CREATE VIEW pg_stat_activity_allusers AS SELECT * FROM get_sa();
GRANT SELECT ON pg_stat_activity_allusers TO public;
Perhatikan bahwa akses gratis ke pg_stat_activity
dibatasi karena suatu alasan. Mungkin untuk mengintip informasi sensitif dari pertanyaan orang lain - bayangkan misalnya jika pengguna lain menggunakan pgcrypto. Daripada memberikan hak kepada public
Anda, Anda harus memberikannya hanya kepada pengguna atau peran tertentu yang bertindak sebagai pengguna pengganti untuk pemantauan.