ALTER ROLE
ALTER ROLE â измениÑÑ ÑÐ¾Ð»Ñ Ð² базе даннÑÑ
СинÑакÑиÑ
ALTER ROLEÑказание_Ñоли[ WITH ]паÑамеÑÑ[ ... ] ÐдеÑÑпаÑамеÑÑ: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMITпÑедел_подклÑÑений| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'паÑолÑ' | VALID UNTIL 'даÑа_вÑемÑ' ALTER ROLEимÑRENAME TOновое_имÑALTER ROLE {Ñказание_Ñоли| ALL } [ 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 ÐдеÑÑÑказание_Ñоли:имÑ_Ñоли| CURRENT_USER | SESSION_USER
ÐпиÑание
ALTER ROLE изменÑÐµÑ Ð°ÑÑибÑÑÑ Ñоли Postgres Pro.
ÐеÑÐ²Ð°Ñ ÑоÑма ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² ÑÑой ÑпÑавке Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ аÑÑибÑÑÑ Ñоли, коÑоÑÑе можно ÑказаÑÑ Ð² CREATE ROLE. (ÐокÑÑваÑÑÑÑ Ð²Ñе возможнÑе аÑÑибÑÑÑ, оÑÑÑÑÑÑвÑÑÑ ÑолÑко возможноÑÑи добавлениÑ/ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñленов Ñоли; Ð´Ð»Ñ ÑÑого нÑжно иÑполÑзоваÑÑ GRANT и REVOKE.) ÐÑÑибÑÑÑ, не ÑпомÑнÑÑÑе в команде, ÑоÑ
ÑанÑÑÑ Ñвои пÑедÑдÑÑие знаÑениÑ. СÑпеÑполÑзоваÑели Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
могÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð»ÑбÑе паÑамеÑÑÑ Ð»Ñбой Ñоли, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ñакже менÑÑÑ Ð»ÑбÑе паÑамеÑÑÑ (за иÑклÑÑением паÑамеÑÑов SUPERUSER, REPLICATION и BYPASSRLS), но ÑолÑко не Ñолей ÑÑпеÑполÑзоваÑелей и ÑепликаÑии. ÐбÑÑнÑе полÑзоваÑели (Ñоли) могÑÑ Ð¼ÐµÐ½ÑÑÑ ÑолÑко Ñвой паÑолÑ.
ÐÑоÑÑ ÑоÑма менÑÐµÑ Ð¸Ð¼Ñ Ñоли. СÑпеÑполÑзоваÑели Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
могÑÑ Ð¿ÐµÑеименоваÑÑ Ð»ÑбÑÑ ÑолÑ, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ð¿ÐµÑеименовÑваÑÑ Ñоли не ÑÑпеÑполÑзоваÑелей. Также нелÑÐ·Ñ Ð¿ÐµÑеименоваÑÑ ÑÐ¾Ð»Ñ ÑекÑÑего полÑзоваÑÐµÐ»Ñ Ð² акÑивном ÑеанÑе. (ÐÑли вам нÑжно ÑделаÑÑ ÑÑо, подклÑÑиÑеÑÑ Ð´ÑÑгим полÑзоваÑелем.) Так как в паÑолÑÑ
Ñ MD5-ÑиÑÑованием Ð¸Ð¼Ñ Ñоли иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве кÑипÑоÑоли, пÑи пеÑеименовании Ñоли ÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¾ÑиÑаеÑÑÑ, еÑли он бÑл заÑиÑÑован MD5.
ÐÑÑавÑиеÑÑ ÑоÑÐ¼Ñ Ð¼ÐµÐ½ÑÑÑ Ð·Ð½Ð°Ñение по ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑионной пеÑеменной, коÑоÑое бÑÐ´ÐµÑ ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ð½Ð° ÑеанÑÑ Ñоли во вÑеÑ
базаÑ
даннÑÑ
, либо, еÑли добавлено пÑедложение IN DATABASE, ÑолÑко на ÑеанÑÑ Ñоли в заданной базе. ÐÑли вмеÑÑо имени Ñоли Ñказано ALL, ÑÑо знаÑение пеÑеменной ÑаÑпÑоÑÑÑанÑеÑÑÑ Ð½Ð° вÑе Ñоли. ÐÑполÑзование ALL Ñ IN DATABASE по ÑÑÑи ÑавноÑилÑно иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER DATABASE ... SET ....
Ðогда ÑÑа ÑÐ¾Ð»Ñ Ð²Ð¿Ð¾ÑледÑÑвии ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ Ð½Ð¾Ð²Ð¾Ðµ подклÑÑение, Ñказанное знаÑение ÑÑÐ°Ð½ÐµÑ Ð·Ð½Ð°Ñением по ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑеанÑе, пеÑеопÑеделÑÑ Ð·Ð½Ð°Ñение, заданное в postgresql.conf или полÑÑенное из командной ÑÑÑоки postgres. ÐÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ ÑолÑко в Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñ
ода; пÑи вÑполнении SET ROLE или SET SESSION AUTHORIZATION новÑе знаÑÐµÐ½Ð¸Ñ Ð½Ðµ пÑименÑÑÑÑ. ÐÐ°Ð±Ð¾Ñ Ð¿Ð°ÑамеÑÑов Ð´Ð»Ñ Ð²ÑеÑ
баз даннÑÑ
пеÑеопÑеделÑеÑÑÑ Ð¿Ð°ÑамеÑÑами ÑÑÐ¾Ð²Ð½Ñ ÐÐ, ÑÑÑановленнÑми Ð´Ð»Ñ Ñоли. ÐаÑамеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑеÑной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
или конкÑеÑной Ñоли пеÑеопÑеделÑÑÑ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ð²ÑеÑ
Ñолей.
СÑпеÑполÑзоваÑели могÑÑ Ð¼ÐµÐ½ÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑ
по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð»ÑбÑÑ
Ñолей, а полÑзоваÑели Ñ Ð¿Ñавом CREATEROLE могÑÑ Ð¼ÐµÐ½ÑÑÑ Ð¸Ñ
ÑолÑко Ð´Ð»Ñ Ñолей не ÑÑпеÑполÑзоваÑелей. ÐбÑÑнÑе полÑзоваÑели могÑÑ Ð¾Ð¿ÑеделÑÑÑ Ð¿ÐµÑеменнÑе ÑолÑко Ð´Ð»Ñ ÑебÑ. ÐекоÑоÑÑе пеÑеменнÑе конÑигÑÑаÑии нелÑÐ·Ñ Ð·Ð°Ð´Ð°ÑÑ Ñаким ÑпоÑобом, а некоÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑолÑко ÑÑпеÑполÑзоваÑелÑ. ÐаÑамеÑÑÑ Ð²ÑеÑ
Ñолей во вÑеÑ
базаÑ
даннÑÑ
могÑÑ Ð½Ð°ÑÑÑаиваÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ÐаÑамеÑÑÑ
имÑÐÐ¼Ñ Ñоли, аÑÑибÑÑÑ ÐºÐ¾ÑоÑой изменÑÑÑÑÑ.
- CURRENT_USER
ÐÑбиÑÐ°ÐµÑ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑекÑÑего полÑзоваÑелÑ, а не Ñвно задаваемÑÑ ÑолÑ.
- SESSION_USER
ÐÑбиÑÐ°ÐµÑ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑекÑÑего полÑзоваÑÐµÐ»Ñ ÑеанÑа, а не Ñвно задаваемÑÑ ÑолÑ.
SUPERUSERNOSUPERUSERCREATEDBNOCREATEDBCREATEROLENOCREATEROLEINHERITNOINHERITLOGINNOLOGINREPLICATIONNOREPLICATIONBYPASSRLSNOBYPASSRLSCONNECTION LIMITпÑедел_подклÑÑенийPASSWORDпаÑолÑENCRYPTEDUNENCRYPTEDVALID 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 ÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro.