Skip site navigation (1) Skip section navigation (2)

Re: CREATEROLE, CREATEDB

From: Bernd Helmle <mailings(at)oopsware(dot)de>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: CREATEROLE, CREATEDB
Date: 2007-06-05 14:50:40
Message-ID: EFB9060AA8B7988D3C0175D6@imhotep.credativ.de (view raw or flat)
Thread:
Lists: pgsql-hackers
--On Dienstag, Juni 05, 2007 16:04:44 +0200 Peter Eisentraut 
<peter_e(at)gmx(dot)net> wrote:

> Is it correct that a user with CREATEROLE privilege but without CREATEDB
> privilege can create a user with *CREATEDB* privilege, thus bypassing his
> original restrictions?  This sequence doesn't look right:
>
> pei=# create user foo1 createrole;
> CREATE ROLE
> pei=# \c - foo1
> You are now connected to database "pei" as user "foo1".
> pei=> create database test;
> ERROR:  permission denied to create database
> pei=> create user foo2 createdb;
> CREATE ROLE
> pei=> \c - foo2
> You are now connected to database "pei" as user "foo2".
> pei=> create database test;
> CREATE DATABASE

I had this issue once, too. CREATEROLE doesn't imply any inheritance from a 
role which gots this privilege, thus you are required to treat such roles 
much the same as superuser. This behavior is documented (well, at least in 
8.2, haven't looked in 8.1):

<http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html>

<snip>
 Be careful with the CREATEROLE privilege. There is no concept of 
inheritance for the privileges of a CREATEROLE-role. That means that even 
if a role does not have a certain privilege but is allowed to create other 
roles, it can easily create another role with different privileges than its 
own (except for creating roles with superuser privileges). For example, if 
the role "user" has the CREATEROLE privilege but not the CREATEDB 
privilege, nonetheless it can create a new role with the CREATEDB 
privilege. Therefore, regard roles that have the CREATEROLE privilege as 
almost-superuser-roles.
</snip>

-- 
  Thanks

                    Bernd

In response to

Responses

pgsql-hackers by date

Next:From: Bernd HelmleDate: 2007-06-05 15:14:30
Subject: Re: [COMMITTERS] pgsql: Create a GUC parametertemp_tablespacesthat allows selection of
Previous:From: Merlin MoncureDate: 2007-06-05 14:45:35
Subject: Re: libpq and Binary Data Formats

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group