20.6. ÐезопаÑноÑÑÑ ÑÑнкÑий #
ФÑнкÑии, ÑÑиггеÑÑ Ð¸ полиÑики заÑиÑÑ Ð½Ð° ÑÑовне ÑÑÑок позволÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм внедÑÑÑÑ ÐºÐ¾Ð´ в обÑлÑживаÑÑие пÑоÑеÑÑÑ, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ¿ÑеднамеÑенно вÑполнен дÑÑгими полÑзоваÑелÑми. Таким обÑазом ÑÑи меÑ
Ð°Ð½Ð¸Ð·Ð¼Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм запÑÑкаÑÑ Â«ÑÑоÑнÑкий код» оÑноÑиÑелÑно пÑоÑÑо. ÐÑÑÑÐ°Ñ Ð·Ð°ÑиÑа Ð¾Ñ ÑÑого â ÑÑÑогое огÑаниÑение кÑÑга лиÑ, коÑоÑÑе могÑÑ ÑоздаваÑÑ Ð¾Ð±ÑекÑÑ. Там где ÑÑо невозможно, пиÑиÑе запÑоÑÑ Ñак, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ ÑÑÑлалиÑÑ ÑолÑко на обÑекÑÑ Ñ Ð´Ð¾Ð²ÐµÑеннÑми владелÑÑами. УдалиÑе из search_path лÑбÑе ÑÑ
емÑ, в коÑоÑÑÑ
могÑÑ ÑоздаваÑÑ Ð¾Ð±ÑекÑÑ Ð½ÐµÐ´Ð¾Ð²ÐµÑеннÑе полÑзоваÑели.
ФÑнкÑии вÑполнÑÑÑÑÑ Ð²Ð½ÑÑÑи ÑеÑвеÑного пÑоÑеÑÑа Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ð¾ÑиÑми полÑзоваÑÐµÐ»Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑемÑ, запÑÑкаÑÑего ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑли иÑполÑзÑемÑй Ð´Ð»Ñ ÑÑнкÑий ÑзÑк пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑазÑеÑÐ°ÐµÑ Ð½ÐµÐºÐ¾Ð½ÑÑолиÑÑемÑй доÑÑÑп к памÑÑи, Ñо ÑÑо даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð²Ð½ÑÑÑенние ÑÑÑÑкÑÑÑÑ Ð´Ð°Ð½Ð½ÑÑ ÑеÑвеÑа. Таким обÑазом, помимо вÑего пÑоÑего, Ñакие ÑÑнкÑии могÑÑ Ð¾Ð±Ð¾Ð¹Ñи огÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа к ÑиÑÑеме. ЯзÑки пÑогÑаммиÑованиÑ, допÑÑкаÑÑие Ñакой доÑÑÑп, ÑÑиÑаÑÑÑÑ Â«Ð½ÐµÐ´Ð¾Ð²ÐµÑеннÑми» и ÑоздаваÑÑ ÑÑнкÑии на ÑÑÐ¸Ñ ÑзÑÐºÐ°Ñ Postgres Pro ÑазÑеÑÐ°ÐµÑ ÑолÑко ÑÑпеÑполÑзоваÑелÑм.