четверг, 8 декабря 2011 г.

postgresql ERROR: permission denied for language c

Ошибка возникла при попытке выполнить uuid-ossp.sql (этот файл содержит набор процедур для работы с uuid). Выяснилось, что хранимые процедуры на си могут создавать только суперпользователи.

Если же хочется, чтобы это было доступно не только суперпользователю, можно сделать так:

1. В базе сделать язык си вызывающим доверие:

psql --single-transaction -c "UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'c';" -d база -U суперюзер


2. Дать нужному пользователю нужные права:

psql -c "GRANT USAGE ON LANGUAGE c TO юзер;" -d база -U суперюзер

Комментариев нет:

Отправить комментарий