On Monday, February 27, 2012 1:23:22 pm James B. Byrne wrote:
> Obviously, I am missing something important here. The
> database in question is created thusly:
>
> CREATE DATABASE test
> WITH OWNER = devl
> ENCODING = 'UTF8'
> TABLESPACE = pg_default
> LC_COLLATE = 'en_US.UTF-8'
> LC_CTYPE = 'en_US.UTF-8'
> CONNECTION LIMIT = -1;
When you run the above are you doing it as user dev1 or the postgres user?
>
>
> The manual says this:
>
> Loading an extension requires the same privileges that
> would be required to create its component objects. For
> most extensions this means superuser or database owner
> privileges are needed. The user who runs CREATE EXTENSION
> becomes the owner of the extension for purposes of later
> privilege checks, as well as the owner of any objects
> created by the extension's script.
>
> However, looking at the extension properties shows this:
>
> -- Extension: plpgsql
>
> -- DROP EXTENSION plpgsql;
>
> CREATE EXTENSION plpgsql
> SCHEMA pg_catalog
> VERSION "1.0";
> ALTER EXTENSION plpgsql
> OWNER TO postgres;
>
> So, why is the plpgsql extension in test owned by postgres
> and not by devl to begin with?
Is plpgsql in template1 and you are running the CREATE DATABASE script as
postgres?
--
Adrian Klaver
adrian.klaver@gmail.com