20.5. ÐÑедопÑеделÑннÑе Ñоли
Ð Postgres Pro имееÑÑÑ Ð½Ð°Ð±Ð¾Ñ Ð¿ÑедопÑеделÑннÑÑ Ñолей, коÑоÑÑе даÑÑ Ð´Ð¾ÑÑÑп к некоÑоÑÑм ÑаÑÑо воÑÑÑебованнÑм, но не обÑедоÑÑÑпнÑм ÑÑнкÑиÑм и даннÑм. ÐдминиÑÑÑаÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð½Ð°Ð·Ð½Ð°ÑаÑÑ (GRANT) ÑÑи Ñоли полÑзоваÑелÑм и/или ÑолÑм в Ñвоей ÑÑеде, Ñаким обÑазом оÑкÑÑÐ²Ð°Ñ ÑÑим полÑзоваÑелÑм доÑÑÑп к Ñказанной ÑÑнкÑионалÑноÑÑи и инÑоÑмаÑии.
ÐмеÑÑиеÑÑ Ð¿ÑедопÑеделÑннÑе Ñоли опиÑÐ°Ð½Ñ Ð² ТаблиÑе 20.1. ÐамеÑÑÑе, ÑÑо конкÑеÑнÑе ÑазÑеÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ из пÑедопÑеделÑннÑÑ Ñолей в бÑдÑÑем могÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ Ð¿Ð¾ меÑе Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной ÑÑнкÑионалÑноÑÑи. ÐдминиÑÑÑаÑоÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑледиÑÑ Ð·Ð° ÑÑими изменениÑми, пÑоÑмаÑÑÐ¸Ð²Ð°Ñ Ð·Ð°Ð¼ÐµÑÐ°Ð½Ð¸Ñ Ðº вÑпÑÑкам.
ТаблиÑа 20.1. ÐÑедопÑеделÑннÑе Ñоли
| Ð Ð¾Ð»Ñ | РазÑеÑаемÑй доÑÑÑп |
|---|---|
| pg_read_all_settings | ЧиÑаÑÑ Ð²Ñе конÑигÑÑаÑионнÑе пеÑеменнÑе, даже Ñе, ÑÑо обÑÑно Ð²Ð¸Ð´Ð½Ñ ÑолÑко ÑÑпеÑполÑзоваÑелÑм. |
| pg_read_all_stats | ЧиÑаÑÑ Ð²Ñе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_* и иÑполÑзоваÑÑ ÑазлиÑнÑе ÑаÑÑиÑениÑ, ÑвÑзаннÑе Ñо ÑÑаÑиÑÑикой, даже Ñе, ÑÑо обÑÑно Ð²Ð¸Ð´Ð½Ñ ÑолÑко ÑÑпеÑполÑзоваÑелÑм. |
| pg_stat_scan_tables | ÐÑполнÑÑÑ ÑÑнкÑии мониÑоÑинга, коÑоÑÑе могÑÑ ÑÑÑанавливаÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки ACCESS SHARE в ÑаблиÑаÑ
, возможно, на длиÑелÑное вÑемÑ. |
| pg_monitor | ЧиÑаÑÑ/вÑполнÑÑÑ ÑазлиÑнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑÑнкÑии Ð´Ð»Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга. ÐÑа ÑÐ¾Ð»Ñ Ð²ÐºÐ»ÑÑена в Ñоли pg_read_all_settings, pg_read_all_stats и pg_stat_scan_tables. |
| pg_signal_backend | ÐеÑедаваÑÑ Ð´ÑÑгим обÑлÑживаÑÑим пÑоÑеÑÑам ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´Ð»Ñ Ð¾ÑÐ¼ÐµÐ½Ñ Ð·Ð°Ð¿ÑоÑа или завеÑÑÐµÐ½Ð¸Ñ ÑеанÑа. |
| pg_read_server_files | ЧиÑаÑÑ ÑÐ°Ð¹Ð»Ñ Ð² лÑбом меÑÑе Ñайловой ÑиÑÑемÑ, кÑда Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп СУÐРна ÑеÑвеÑе, вÑполнÑÑ COPY и дÑÑгие ÑÑнкÑии ÑабоÑÑ Ñ Ñайлами. |
| pg_write_server_files | ÐапиÑÑваÑÑ ÑÐ°Ð¹Ð»Ñ Ð² лÑбом меÑÑе Ñайловой ÑиÑÑемÑ, кÑда Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп СУÐРна ÑеÑвеÑе, вÑполнÑÑ COPY и дÑÑгие ÑÑнкÑии ÑабоÑÑ Ñ Ñайлами. |
| pg_execute_server_program | ÐÑполнÑÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° ÑеÑвеÑе (Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑелÑ, запÑÑкаÑÑего СУÐÐ) Ñак же, как ÑÑо Ð´ÐµÐ»Ð°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° COPY и дÑÑгие ÑÑнкÑии, вÑполнÑÑÑие пÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° ÑÑоÑоне ÑеÑвеÑа. |
Роли pg_monitor, pg_read_all_settings, pg_read_all_stats и pg_stat_scan_tables ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑÑ Ð¼Ð¾Ð³Ð»Ð¸ легко наÑÑÑоиÑÑ ÑÐ¾Ð»Ñ Ð´Ð»Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга ÑеÑвеÑа ÐÐ. ÐÑи Ñоли наделÑÑÑ ÑвоиÑ
Ñленов набоÑом обÑиÑ
пÑав, позволÑÑÑиÑ
ÑиÑаÑÑ ÑазлиÑнÑе полезнÑе паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, ÑÑаÑиÑÑÐ¸ÐºÑ Ð¸ дÑÑгÑÑ ÑиÑÑемнÑÑ Ð¸Ð½ÑоÑмаÑиÑ, ÑÑо обÑÑно доÑÑÑпно ÑолÑко ÑÑпеÑполÑзоваÑелÑм.
Ð Ð¾Ð»Ñ pg_signal_backend пÑедназнаÑена Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑÑ Ð¼Ð¾Ð³Ð»Ð¸ даваÑÑ Ð´Ð¾Ð²ÐµÑеннÑм, но не имеÑÑим пÑав ÑÑпеÑполÑзоваÑÐµÐ»Ñ ÑолÑм пÑаво поÑÑлаÑÑ ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´ÑÑгим обÑлÑживаÑÑим пÑоÑеÑÑам. РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑа ÑÐ¾Ð»Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¿ÐµÑедаваÑÑ ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð´Ð»Ñ Ð¾ÑÐ¼ÐµÐ½Ñ Ð·Ð°Ð¿ÑоÑа, вÑполнÑÑÑегоÑÑ Ð² дÑÑгом пÑоÑеÑÑе, или Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑеанÑа. Ðднако полÑзоваÑелÑ, вклÑÑÑннÑй в ÑÑÑ ÑолÑ, не Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑпÑавлÑÑÑ ÑÐ¸Ð³Ð½Ð°Ð»Ñ Ð¿ÑоÑеÑÑам, пÑинадлежаÑим ÑÑпеÑполÑзоваÑелÑм. См. ÐодÑаздел 9.26.2.
Роли pg_read_server_files, pg_write_server_files и pg_execute_server_program пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑÑ Ð¼Ð¾Ð³Ð»Ð¸ вÑделиÑÑ Ð´Ð¾Ð²ÐµÑеннÑе, но не имеÑÑие пÑава ÑÑпеÑполÑзоваÑелей Ñоли Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к Ñайлам и запÑÑка пÑогÑамм на ÑеÑвеÑе ÐÐ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑелÑ, запÑÑкаÑÑего СУÐÐ. Так как ÑÑи Ñоли могÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº лÑбÑм Ñайлам в Ñайловой ÑиÑÑеме ÑеÑвеÑа, они обÑ
одÑÑ Ð²Ñе пÑовеÑки ÑазÑеÑений на ÑÑовне Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, а знаÑиÑ, воÑполÑзовавÑиÑÑ Ð¸Ð¼Ð¸, можно полÑÑиÑÑ Ð¿Ñава ÑÑпеÑполÑзоваÑелÑ. ÐоÑÑÐ¾Ð¼Ñ Ð½Ð°Ð·Ð½Ð°ÑаÑÑ Ð¸Ñ
полÑзоваÑелÑм ÑледÑÐµÑ Ñо вÑей оÑÑоÑожноÑÑÑÑ.
УпÑавлÑÑÑ ÑленÑÑвом в ÑÑÐ¸Ñ ÑолÑÑ ÑледÑÐµÑ Ð¾ÑмоÑÑиÑелÑно, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ иÑполÑзовалиÑÑ ÑолÑко по Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи и ÑолÑко Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸ÐµÐ¼, ÑÑо они оÑкÑÑваÑÑ Ð´Ð¾ÑÑÑп к закÑÑÑой инÑоÑмаÑии.
ÐдминиÑÑÑаÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð´Ð°Ð²Ð°ÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм доÑÑÑп к ÑÑим ÑолÑм, иÑполÑзÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ GRANT. ÐапÑимеÑ:
GRANT pg_signal_backend TO admin_user;