Re: confused by superuser-definition - Mailing list pgsql-general

From
Subject Re: confused by superuser-definition
Date
Msg-id 65124.216.238.112.88.1086095156.squirrel@$HOSTNAME
Whole thread Raw
In response to Re: confused by superuser-definition  (Richard Huxton <dev@archonet.com>)
List pgsql-general
> zuhans@iname.com wrote:
>> hello,
>>
>> i'm rather new to postgresql and am now standing in front of a big
>> problem.
>>
>> if i want to host my database on any provider out there, i don't now
>> see  any chance to get my own right to insert new users into my db.
>> because:  i'd only be able to do this, when i had the rights to
>> "createuser", but  that  would mean, that i'd have the
>> superuser-rights for the whole db's  in "public" - if there is only
>> this base-schema.
>>
>> do i understand this right?

No.

-- Function: create_user(name)

CREATE OR REPLACE FUNCTION create_user(name)
  RETURNS bool AS
'
DECLARE
  PWD VARCHAR;
  CMD VARCHAR;
BEGIN
  PWD := \'INITIALPWD\';
  IF EXISTS(SELECT * FROM pg_user WHERE usename = $1) THEN
    RETURN FALSE;
  END IF;
  CMD := \'CREATE USER "\' || $1 || \'" WITH ENCRYPTED PASSWORD \' || PWD\';
  EXECUTE CMD;
  RETURN TRUE;
END;
'
  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;

-- Note: "SECURITY DEFINER". This function was created by a user that
does have create user privileges.

--Berend Tober




pgsql-general by date:

Previous
From: "Stijn Vanroye"
Date:
Subject: Re: Large table search question[Scanned]
Next
From: zhicheng wang
Date:
Subject: Re: after using pg_resetxlog, db lost