ALTER ROLE
СинÑакÑиÑ
ALTER ROLE Ð¸Ð¼Ñ [ [ WITH ] паÑамеÑÑ [ ... ] ]
ÐдеÑÑ Ð¿Ð°ÑамеÑÑ:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| CONNECTION LIMIT пÑедел_подклÑÑений
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'паÑолÑ'
| VALID UNTIL 'даÑа_вÑемÑ'
ALTER ROLE Ð¸Ð¼Ñ RENAME TO новое_имÑ
ALTER ROLE Ð¸Ð¼Ñ [ IN DATABASE имÑ_бд ] SET паÑамеÑÑ_конÑигÑÑаÑии { TO | = } { знаÑение | DEFAULT }
ALTER ROLE { Ð¸Ð¼Ñ | ALL } [ IN DATABASE имÑ_бд ] SET паÑамеÑÑ_конÑигÑÑаÑии FROM CURRENT
ALTER ROLE { Ð¸Ð¼Ñ | ALL } [ IN DATABASE имÑ_бд ] RESET паÑамеÑÑ_конÑигÑÑаÑии
ALTER ROLE { Ð¸Ð¼Ñ | ALL } [ IN DATABASE имÑ_бд ] RESET ALLÐпиÑание
ALTER ROLE изменÑÐµÑ Ð°ÑÑибÑÑÑ Ñоли PostgreSQL.
ÐеÑÐ²Ð°Ñ ÑоÑма ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² ÑÑой ÑпÑавке Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ аÑÑибÑÑÑ Ñоли, коÑоÑÑе можно ÑказаÑÑ Ð² CREATE ROLE. (ÐокÑÑваÑÑÑÑ Ð²Ñе возможнÑе аÑÑибÑÑÑ, оÑÑÑÑÑÑвÑÑÑ ÑолÑко возможноÑÑи добавлениÑ/ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñленов Ñоли; Ð´Ð»Ñ ÑÑого нÑжно иÑполÑзоваÑÑ GRANT и REVOKE.) ÐÑÑибÑÑÑ, не ÑпомÑнÑÑÑе в команде, ÑÐ¾Ñ ÑанÑÑÑ Ñвои пÑедÑдÑÑие знаÑениÑ. СÑпеÑполÑзоваÑели Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð»ÑбÑе паÑамеÑÑÑ Ð»Ñбой Ñоли, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ñакже менÑÑÑ Ð»ÑбÑе паÑамеÑÑÑ, но ÑолÑко не Ñолей ÑÑпеÑполÑзоваÑелей и ÑепликаÑии. ÐбÑÑнÑе полÑзоваÑели (Ñоли) могÑÑ Ð¼ÐµÐ½ÑÑÑ ÑолÑко Ñвой паÑолÑ.
ÐÑоÑÑ ÑоÑма менÑÐµÑ Ð¸Ð¼Ñ Ñоли. СÑпеÑполÑзоваÑели Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð³ÑÑ Ð¿ÐµÑеименоваÑÑ Ð»ÑбÑÑ ÑолÑ, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ð¿ÐµÑеименовÑваÑÑ Ñоли не ÑÑпеÑполÑзоваÑелей. Также нелÑÐ·Ñ Ð¿ÐµÑеименоваÑÑ ÑÐ¾Ð»Ñ ÑекÑÑего полÑзоваÑÐµÐ»Ñ Ð² акÑивном ÑеанÑе. (ÐÑли вам нÑжно ÑделаÑÑ ÑÑо, подклÑÑиÑеÑÑ Ð´ÑÑгим полÑзоваÑелем.) Так как в паÑолÑÑ Ñ MD5-ÑиÑÑованием Ð¸Ð¼Ñ Ñоли иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве кÑипÑоÑоли, пÑи пеÑеименовании Ñоли ÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¾ÑиÑаеÑÑÑ, еÑли он бÑл заÑиÑÑован MD5.
ÐÑÑавÑиеÑÑ ÑоÑÐ¼Ñ Ð¼ÐµÐ½ÑÑÑ Ð·Ð½Ð°Ñение по ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑионной пеÑеменной, коÑоÑое бÑÐ´ÐµÑ ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ð½Ð° ÑеанÑÑ Ñоли во вÑÐµÑ Ð±Ð°Ð·Ð°Ñ Ð´Ð°Ð½Ð½ÑÑ , либо, еÑли добавлено пÑедложение IN DATABASE, ÑолÑко на ÑеанÑÑ Ñоли в заданной базе. ÐÑли вмеÑÑо имени Ñоли Ñказано ALL, ÑÑо знаÑение пеÑеменной ÑаÑпÑоÑÑÑанÑеÑÑÑ Ð½Ð° вÑе Ñоли. ÐÑполÑзование ALL Ñ IN DATABASE по ÑÑÑи ÑавноÑилÑно иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER DATABASE ... SET ....
Ðогда ÑÑа ÑÐ¾Ð»Ñ Ð²Ð¿Ð¾ÑледÑÑвии ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ Ð½Ð¾Ð²Ð¾Ðµ подклÑÑение, Ñказанное знаÑение ÑÑÐ°Ð½ÐµÑ Ð·Ð½Ð°Ñением по ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑеанÑе, пеÑеопÑеделÑÑ Ð·Ð½Ð°Ñение, заданное в postgresql.conf или полÑÑенное из командной ÑÑÑоки postgres. ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑолÑко в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñ Ð¾Ð´Ð°; пÑи вÑполнении SET ROLE или SET SESSION AUTHORIZATION новÑе знаÑÐµÐ½Ð¸Ñ Ð½Ðµ пÑименÑÑÑÑ. ÐÐ°Ð±Ð¾Ñ Ð¿Ð°ÑамеÑÑов Ð´Ð»Ñ Ð²ÑÐµÑ Ð±Ð°Ð· даннÑÑ Ð¿ÐµÑеопÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑами ÑÑÐ¾Ð²Ð½Ñ ÐÐ, ÑÑÑановленнÑми Ð´Ð»Ñ Ñоли. ÐаÑамеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ конкÑеÑной Ñоли пеÑеопÑеделÑÑÑ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ð²ÑÐµÑ Ñолей.
СÑпеÑполÑзоваÑели могÑÑ Ð¼ÐµÐ½ÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð»ÑбÑÑ Ñолей, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ð¼ÐµÐ½ÑÑÑ Ð¸Ñ ÑолÑко Ð´Ð»Ñ Ñолей не ÑÑпеÑполÑзоваÑелей. ÐбÑÑнÑе полÑзоваÑели могÑÑ Ð¾Ð¿ÑеделÑÑÑ Ð¿ÐµÑеменнÑе ÑолÑко Ð´Ð»Ñ ÑебÑ. ÐекоÑоÑÑе пеÑеменнÑе конÑигÑÑаÑии нелÑÐ·Ñ Ð·Ð°Ð´Ð°ÑÑ Ñаким ÑпоÑобом, а некоÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑолÑко ÑÑпеÑполÑзоваÑелÑ. ÐаÑамеÑÑÑ Ð²ÑÐµÑ Ñолей во вÑÐµÑ Ð±Ð°Ð·Ð°Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð³ÑÑ Ð½Ð°ÑÑÑаиваÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐаÑамеÑÑÑ
- имÑ
ÐÐ¼Ñ Ñоли, аÑÑибÑÑÑ ÐºÐ¾ÑоÑой изменÑÑÑÑÑ.
- SUPERUSER
NOSUPERUSER
CREATEDB
NOCREATEDB
CREATEROLE
NOCREATEROLE
CREATEUSER
NOCREATEUSER
INHERIT
NOINHERIT
LOGIN
NOLOGIN
REPLICATION
NOREPLICATION
CONNECTION LIMIT пÑедел_подклÑÑений
PASSWORD паÑолÑ
ENCRYPTED
UNENCRYPTED
VALID UNTIL 'даÑа_вÑемÑ' ÐÑи пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑÑÑ Ð°ÑÑибÑÑÑ, изнаÑалÑно ÑÑÑановленнÑе командой CREATE ROLE. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÑÑÑаниÑе ÑпÑавки CREATE ROLE.
- новое_имÑ
Ðовое Ð¸Ð¼Ñ Ñоли.
- имÑ_бд
ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой ÑÑÑанавливаеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ Ð¿ÐµÑеменнаÑ.
- паÑамеÑÑ_конÑигÑÑаÑии
знаÑение УказаннÑй паÑамеÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑеанÑÐ°Ñ Ñоли. ÐÑли знаÑение задано как DEFAULT или, ÑÑо Ñо же Ñамое, пÑименÑеÑÑÑ Ð¾Ð¿ÐµÑаÑÐ¸Ñ RESET, пеÑеопÑеделение ÑÑого паÑамеÑÑа Ð´Ð»Ñ Ñоли ÑдалÑеÑÑÑ Ð¸ ÑÐ¾Ð»Ñ Ð±ÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð² новÑÑ ÑеанÑÐ°Ñ ÑиÑÑемное знаÑение паÑамеÑÑа. ÐÐ»Ñ Ð¾ÑиÑÑки знаÑений вÑÐµÑ Ð¿Ð°ÑамеÑÑов, ÑвÑзаннÑÑ Ñ ÑолÑÑ, пÑименÑеÑÑÑ RESET ALL. SET FROM CURRENT ÑÐ¾Ñ ÑанÑÐµÑ ÑекÑÑее знаÑение паÑамеÑÑа в акÑивном ÑеанÑе в каÑеÑÑве знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ Ñоли. ÐÑли Ñказано IN DATABASE, паÑамеÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии наÑÑÑаиваеÑÑÑ Ð¸Ð»Ð¸ ÑдалÑеÑÑÑ ÑолÑко Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ Ñоли и Ñказанной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ Ð´Ð»Ñ Ñоли пÑименÑÑÑÑÑ ÑолÑко в наÑале ÑеанÑа; ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SET ROLE и SET SESSION AUTHORIZATION ÑÑи опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ðµ обÑабаÑÑваÑÑ.
Ðа подÑобнÑми ÑведениÑми об Ð¸Ð¼ÐµÐ½Ð°Ñ Ð¸ знаÑениÑÑ Ð¿Ð°ÑамеÑÑов обÑаÑиÑеÑÑ Ðº SET и Ðлаве 18.
ÐамеÑаниÑ
ÐÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²ÑÑ Ñолей иÑполÑзÑйÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE ROLE, а Ð´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñоли â DROP ROLE.
ALTER ROLE не Ð¼Ð¾Ð¶ÐµÑ ÑпÑавлÑÑÑ ÑленÑÑвом Ñоли, Ð´Ð»Ñ ÑÑого пÑименÑеÑÑÑ GRANT и REVOKE.
УказÑÐ²Ð°Ñ Ð² ÑÑой команде незаÑиÑÑованнÑй паÑолÑ, ÑледÑÐµÑ Ð¿ÑоÑвлÑÑÑ Ð¾ÑÑоÑожноÑÑÑ. ÐаÑÐ¾Ð»Ñ Ð±ÑÐ´ÐµÑ Ð¿ÐµÑедаваÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ð¾ÑкÑÑÑÑм ÑекÑÑом и Ð¼Ð¾Ð¶ÐµÑ Ñакже запиÑаÑÑÑÑ Ð² иÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ клиенÑа или в пÑоÑокол ÑабоÑÑ ÑеÑвеÑа. Ð psql еÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° \password, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾ÑоÑой можно ÑмениÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ñоли, не ÑиÑкÑÑ ÑаÑÑекÑеÑиÑÑ Ð¿Ð°ÑолÑ.
Также возможно ÑвÑзаÑÑ ÑеанÑовÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ñ Ð¾Ð¿ÑеделÑнной базой даннÑÑ , а не Ñ ÑолÑÑ (Ñм. ALTER DATABASE). Ð ÑлÑÑае конÑликÑа паÑамеÑÑÑ Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ Ñоли пеÑеопÑеделÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÑолÑко Ð´Ð»Ñ Ñоли, коÑоÑÑе, в ÑÐ²Ð¾Ñ Ð¾ÑеÑедÑ, пеÑеопÑеделÑÑÑ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐÑимеÑÑ
Ðзменение паÑÐ¾Ð»Ñ Ñоли:
ALTER ROLE davide WITH PASSWORD 'hu8jmn3';
Удаление паÑÐ¾Ð»Ñ Ñоли:
ALTER ROLE davide WITH PASSWORD NULL;
Ðзменение ÑÑока дейÑÑÐ²Ð¸Ñ Ð¿Ð°ÑÐ¾Ð»Ñ (в ÑаÑÑноÑÑи, опÑеделÑеÑÑÑ, ÑÑо паÑÐ¾Ð»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ пеÑеÑÑаÑÑ Ð´ÐµÐ¹ÑÑвоваÑÑ Ð² Ð¿Ð¾Ð»Ð´ÐµÐ½Ñ 4 Ð¼Ð°Ñ 2015 г. в ÑаÑовом поÑÑе UTC+1):
ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';
УÑÑановка беÑконеÑного ÑÑока дейÑÑÐ²Ð¸Ñ Ð¿Ð°ÑолÑ:
ALTER ROLE fred VALID UNTIL 'infinity';
Ðаделение Ñоли пÑавами на Ñоздание дÑÑÐ³Ð¸Ñ Ñолей и новÑÑ Ð±Ð°Ð· даннÑÑ :
ALTER ROLE miriam CREATEROLE CREATEDB;
ÐпÑеделение неÑÑандаÑÑного знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа maintenance_work_mem Ð´Ð»Ñ Ñоли:
ALTER ROLE worker_bee SET maintenance_work_mem = 100000;
ÐпÑеделение неÑÑандаÑÑного знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа client_min_messages Ð´Ð»Ñ Ñоли и заданной базÑ:
ALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;
СовмеÑÑимоÑÑÑ
ÐпеÑаÑÐ¾Ñ ALTER ROLE ÑвлÑеÑÑÑ ÑаÑÑиÑением PostgreSQL.
| ÐÑед. | ÐаÑало | След. |
| ALTER OPERATOR FAMILY | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | ALTER RULE |