Postgresql

創建使用者以監視 Postgres 上的數據庫活動

  • March 21, 2022

Postgres 9.3 Debian 7

我想創建一個名為 monitor 的監控使用者,唯一的權限是執行查詢以監控所有數據庫活動。我創建了使用者,它可以從 pg_stat_activity 中選擇,問題是它只看到它自己的活動,我希望這個使用者看到所有使用者的活動。

有什麼特殊的特權可以這樣做嗎?

此時,只有超級使用者才能在 pg_stat_activity 中看到其他人的活動詳情。

PostgreSQL 可以使用更細粒度的權限模型,例如,您可以GRANT在其中MONITOR_QUERIES授予使用者權限。但是現在它沒有,而且很多東西都是超級使用者專用的。這是其中之一。

我們可以創建一個普通使用者並提供預設pg_monitor角色來獲取所有監控指標。簡單兩步:

創建使用者:

CREATE USER db_monitor WITH PASSWORD 'password';

授予要監控的角色:

GRANT pg_monitor TO db_monitor;

pg_monitor:

  • 該角色讀取/執行各種監控視圖和功能。
  • 它是 pg_read_all_settings、pg_read_all_stats 和 pg_stat_scan_tables 角色的組合

引用自:https://dba.stackexchange.com/questions/74490