20.4. Удаление Ñолей #
Так как Ñоли могÑÑ Ð²Ð»Ð°Ð´ÐµÑÑ Ð¾Ð±ÑекÑами баз даннÑÑ
и имеÑÑ Ð¿Ñава доÑÑÑпа к обÑекÑам дÑÑгиÑ
, Ñдаление Ñоли не ÑводиÑÑÑ Ðº Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð¼Ñ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ DROP ROLE. СнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ Ð¸ пеÑÐµÐ´Ð°Ð½Ñ Ð´ÑÑгим владелÑÑами вÑе обÑекÑÑ, пÑинадлежаÑие Ñоли; Ñакже Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾ÑÐ¾Ð·Ð²Ð°Ð½Ñ Ð²Ñе пÑава, даннÑе Ñоли.
Ðладение обÑекÑами можно пеÑедаваÑÑ Ð² индивидÑалÑном поÑÑдке, пÑименÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER, напÑимеÑ:
ALTER TABLE bobs_table OWNER TO alice;
ÐÑоме Ñого, Ð´Ð»Ñ Ð¿ÐµÑеназнаÑÐµÐ½Ð¸Ñ ÐºÐ°ÐºÐ¾Ð¹-либо дÑÑгой Ñоли Ð²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ ÑÑÐ°Ð·Ñ Ð²Ñеми обÑекÑами, пÑинадлежаÑими ÑдалÑемой Ñоли, можно пÑимениÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ REASSIGN OWNED. Так как REASSIGN OWNED не Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº обÑекÑам в дÑÑгиÑ
базаÑ
даннÑÑ
, ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимо вÑполниÑÑ Ð² каждой базе, коÑоÑÐ°Ñ ÑодеÑÐ¶Ð¸Ñ Ð¾Ð±ÑекÑÑ, пÑинадлежаÑие ÑÑой Ñоли. (ÐамеÑÑÑе, ÑÑо пеÑÐ²Ð°Ñ ÑÐ°ÐºÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° REASSIGN OWNED Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа Ð´Ð»Ñ Ð²ÑеÑ
ÑазделÑемÑÑ
Ð¼ÐµÐ¶Ð´Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ обÑекÑов, Ñо еÑÑÑ Ð´Ð»Ñ Ð±Ð°Ð· даннÑÑ
или ÑаблиÑнÑÑ
пÑоÑÑÑанÑÑв, пÑинадлежаÑиÑ
ÑдалÑемой Ñоли.)
ÐоÑле Ñого как вÑе ÑеннÑе обÑекÑÑ Ð±ÑдÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ Ð½Ð¾Ð²Ñм владелÑÑам, вÑе оÑÑавÑиеÑÑ Ð¾Ð±ÑекÑÑ, пÑинадлежаÑие ÑдалÑемой Ñоли, могÑÑ Ð±ÑÑÑ ÑÐ´Ð°Ð»ÐµÐ½Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DROP OWNED. Ð ÑÑа команда не Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº обÑекÑам в дÑÑгиÑ
базаÑ
даннÑÑ
, Ñак ÑÑо ÐµÑ Ð½Ñжно запÑÑкаÑÑ Ð² каждой базе, коÑоÑÐ°Ñ ÑодеÑÐ¶Ð¸Ñ Ð¾Ð±ÑекÑÑ, пÑинадлежаÑие Ñоли. Также замеÑÑÑе, ÑÑо DROP OWNED не ÑдалÑÐµÑ ÑаблиÑнÑе пÑоÑÑÑанÑÑва или Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñеликом, Ñак ÑÑо ÑÑо необÑ
одимо ÑделаÑÑ Ð²ÑÑÑнÑÑ, еÑли Ñоли пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð°Ñ Ð±Ð°Ð·Ñ Ð¸Ð»Ð¸ ÑаблиÑнÑе пÑоÑÑÑанÑÑва, не пеÑеданнÑе новÑм владелÑÑам.
DROP OWNED Ñакже ÑдалÑÐµÑ Ð²Ñе пÑава, коÑоÑÑе Ð´Ð°Ð½Ñ Ñелевой Ñоли Ð´Ð»Ñ Ð¾Ð±ÑекÑов, не пÑинадлежаÑиÑ
ей. Так как REASSIGN OWNED Ñакие обÑекÑÑ Ð½Ðµ заÑÑагиваеÑ, обÑÑно необÑ
одимо запÑÑÑиÑÑ Ð¸ REASSIGN OWNED, и DROP OWNED (в ÑÑом поÑÑдке!), ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð¸ÑоваÑÑ Ð·Ð°Ð²Ð¸ÑимоÑÑи ÑдалÑемой Ñоли.
С ÑÑÑÑом ÑÑого, обÑий ÑеÑÐµÐ¿Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñоли, коÑоÑÐ°Ñ Ð²Ð»Ð°Ð´ÐµÐ»Ð° обÑекÑами, вкÑаÑÑе Ñаков:
REASSIGN OWNED BY doomed_role TO successor_role; DROP OWNED BY doomed_role; -- повÑоÑиÑÑ Ð¿ÑедÑдÑÑие ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð² клаÑÑеÑе DROP ROLE doomed_role;
Ðогда не вÑе обÑекÑÑ Ð½Ñжно пеÑедаÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð¼Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑÑ, лÑÑÑе ÑнаÑала вÑÑÑнÑÑ Ð¾ÑÑабоÑаÑÑ Ð¸ÑклÑÑениÑ, а в завеÑÑение вÑполниÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ñе вÑÑе дейÑÑвиÑ.
ÐÑи попÑÑке вÑполниÑÑ DROP ROLE Ð´Ð»Ñ Ñоли, Ñ ÐºÐ¾ÑоÑой ÑоÑ
ÑанÑÑÑÑÑ Ð·Ð°Ð²Ð¸ÑимÑе обÑекÑÑ, бÑдÑÑ Ð²ÑÐ´Ð°Ð½Ñ ÑообÑениÑ, говоÑÑÑие, какие обÑекÑÑ Ð½Ñжно пеÑедаÑÑ Ð´ÑÑÐ³Ð¾Ð¼Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑÑ Ð¸Ð»Ð¸ ÑдалиÑÑ.