20.2. ÐÑÑибÑÑÑ Ñолей
Ð Ð¾Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð°ÑÑибÑÑÑ, опÑеделÑÑÑие ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ð¾ÑÐ¸Ñ Ð¸ взаимодейÑÑвие Ñ ÑиÑÑемой аÑÑенÑиÑикаÑии клиенÑов.
- ÐÑаво подклÑÑениÑ
ТолÑко Ñоли Ñ Ð°ÑÑибÑÑом
LOGINмогÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð½Ð°ÑалÑного подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ . Ð Ð¾Ð»Ñ Ñ Ð°ÑÑибÑÑомLOGINможно ÑаÑÑмаÑÑиваÑÑ ÐºÐ°Ðº полÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñакой Ñоли можно иÑполÑзоваÑÑ Ð»Ñбой из ваÑианÑов:CREATE ROLE
имÑLOGIN; CREATE USERимÑ;(Ðоманда
CREATE USERÑквиваленÑнаCREATE ROLEза иÑклÑÑением Ñого, ÑÑоCREATE USERпо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑÐµÐ´Ð¿Ð¾Ð»Ð°Ð³Ð°ÐµÑ Ð°ÑÑибÑÑLOGIN, в Ñо вÑÐµÐ¼Ñ ÐºÐ°ÐºCREATE ROLEнеÑ.)- СÑаÑÑÑ ÑÑпеÑполÑзоваÑелÑ
СÑпеÑполÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð±Ñ Ð¾Ð´Ð¸Ñ Ð²Ñе пÑовеÑки пÑав доÑÑÑпа, за иÑклÑÑением пÑава на Ð²Ñ Ð¾Ð´ в ÑиÑÑемÑ. ÐÑо опаÑÐ½Ð°Ñ Ð¿ÑÐ¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ Ð¸ она не должна иÑполÑзоваÑÑÑÑ Ð½ÐµÐ±Ñежно. ÐÑÑÑе вÑего вÑполнÑÑÑ Ð±Ð¾Ð»ÑÑÑÑ ÑаÑÑÑ ÑабоÑÑ Ð½Ðµ как ÑÑпеÑполÑзоваÑелÑ. ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð¸ÑполÑзÑеÑÑÑ
CREATE ROLE. ÐÑо нÑжно вÑполниÑÑ Ð¸Ð· под Ñоли, коÑоÑÐ°Ñ Ñакже ÑвлÑеÑÑÑ ÑÑпеÑполÑзоваÑелем.имÑSUPERUSER- Создание Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ð Ð¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° Ñвно имеÑÑ ÑазÑеÑение на Ñоздание Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (за иÑклÑÑением ÑÑпеÑполÑзоваÑелей, коÑоÑÑе пÑопÑÑкаÑÑ Ð²Ñе пÑовеÑки). ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñакой Ñоли иÑполÑзÑеÑÑÑ
CREATE ROLE.имÑCREATEDB- Создание Ñоли
Ð Ð¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° Ñвно имеÑÑ ÑазÑеÑение на Ñоздание дÑÑÐ³Ð¸Ñ Ñолей (за иÑклÑÑением ÑÑпеÑполÑзоваÑелей, коÑоÑÑе пÑопÑÑкаÑÑ Ð²Ñе пÑовеÑки). ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñакой Ñоли иÑполÑзÑеÑÑÑ
CREATE ROLE. Ð Ð¾Ð»Ñ Ñ Ð¿ÑавомимÑCREATEROLECREATEROLEÐ¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑолÑко ÑоздаваÑÑ, но и изменÑÑÑ Ð¸ ÑдалÑÑÑ Ð´ÑÑгие Ñоли, а Ñакже вÑдаваÑÑ Ð¸ оÑзÑваÑÑ ÑленÑÑво в ÑолÑÑ . Ðднако Ð´Ð»Ñ ÑозданиÑ, изменениÑ, ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñолей ÑÑпеÑполÑзоваÑелей и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑленÑÑва в Ð½Ð¸Ñ ÑÑебÑеÑÑÑ Ð¸Ð¼ÐµÑÑ ÑÑаÑÑÑ ÑÑпеÑполÑзоваÑелÑ; пÑаваCREATEROLEв ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑоÑно.- ÐапÑÑк ÑепликаÑии
Ð Ð¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° имеÑÑ Ñвное ÑазÑеÑение на запÑÑк поÑоковой ÑепликаÑии (за иÑклÑÑением ÑÑпеÑполÑзоваÑелей, коÑоÑÑе пÑопÑÑкаÑÑ Ð²Ñе пÑовеÑки). РолÑ, иÑполÑзÑÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¿Ð¾Ñоковой ÑепликаÑии, Ñакже должна имеÑÑ Ð°ÑÑибÑÑ
LOGIN. ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñакой Ñоли иÑполÑзÑеÑÑÑCREATE ROLE.имÑREPLICATION LOGIN- ÐаÑолÑ
ÐаÑÐ¾Ð»Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение, еÑли меÑод аÑÑенÑиÑикаÑии клиенÑов ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑзоваÑели пÑедоÑÑавлÑли паÑÐ¾Ð»Ñ Ð¿Ñи подклÑÑении к базе даннÑÑ . ÐеÑÐ¾Ð´Ñ Ð°ÑÑенÑиÑикаÑии
passwordиmd5иÑполÑзÑÑÑ Ð¿Ð°Ñоли. Ðаза даннÑÑ Ð¸ опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема иÑполÑзÑÑÑ ÑазделÑнÑе паÑоли. ÐаÑÐ¾Ð»Ñ ÑказÑваеÑÑÑ Ð¿Ñи Ñоздании Ñоли:CREATE ROLE.имÑPASSWORD 'ÑÑÑока'
ÐÑÑибÑÑÑ Ñолей могÑÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ ALTER ROLE. Ðолее деÑалÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð² ÑпÑавке по командам CREATE ROLE и ALTER ROLE.
ÐодÑказка
РекомендÑеÑÑÑ ÑоздаÑÑ ÑÐ¾Ð»Ñ Ñ Ð¿Ñавами CREATEDB и CREATEROLE, но не ÑÑпеÑполÑзоваÑелÑ, и в поÑледÑÑÑем иÑполÑзоваÑÑ ÐµÑ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ даннÑÑ
и ÑолÑми. Такой подÑ
од Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¾Ð¿Ð°ÑноÑÑей, ÑвÑзаннÑÑ
Ñ Ð¸ÑполÑзованием полномоÑий ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ñ, коÑоÑÑе иÑ
не ÑÑебÑÑÑ.
Ðа ÑÑовне Ñолей можно ÑÑÑанавливаÑÑ Ð¼Ð½Ð¾Ð³Ð¸Ðµ конÑигÑÑаÑионнÑе паÑамеÑÑÑ Ð²Ñемени вÑполнениÑ, опиÑаннÑе в Ðлаве 18. ÐапÑимеÑ, еÑли по некоÑоÑÑм пÑиÑинам вÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ ÑÑебÑеÑÑÑ Ð¾ÑклÑÑиÑÑ Ð¸ÑполÑзование индекÑов (подÑказка: Ð¿Ð»Ð¾Ñ Ð°Ñ Ð¸Ð´ÐµÑ) можно вÑполниÑÑ:
ALTER ROLE myname SET enable_indexscan TO off;
УÑÑановленное знаÑение паÑамеÑÑа бÑÐ´ÐµÑ ÑоÑ
Ñанено (но не бÑÐ´ÐµÑ Ð¿Ñименено ÑÑазÑ). ÐÐ»Ñ Ð¿Ð¾ÑледÑÑÑиÑ
подклÑÑений Ñ ÑÑой ÑолÑÑ ÑÑо бÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ ÐºÐ°Ðº вÑполнение ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SET enable_indexscan TO off пеÑед наÑалом ÑеанÑа. Ðо ÑÑо ÑолÑко знаÑение по ÑмолÑаниÑ; в ÑеÑение ÑеанÑа ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ. ÐÐ»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑÑÑановок на ÑÑовне Ñолей Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии иÑполÑзÑеÑÑÑ ALTER ROLE . ÐбÑаÑиÑе внимание, ÑÑо ÑÑÑановка паÑамеÑÑов конÑигÑÑаÑии на ÑÑовне Ñоли без пÑава имÑ_Ñоли RESET имÑ_пеÑеменнойLOGIN лиÑено ÑмÑÑла, Ñ. к. они никогда не бÑдÑÑ Ð¿ÑимененÑ.