Thread: Creating users from shell or perl script

Creating users from shell or perl script

From
Danny Aldham
Date:
I have written a program that will install some software,
create a database, and create a couple of postgres users. Most
everything is working, but I cannot see how to create postgres
users with set passwords. If the script calls createuser the
prompts do not come to the user, and anyway I do not want them to.
I want to be able to create the user with a password and not have
the person running the script see it. Right now I am trying in perl:
$output = `/usr/local/pgsql/bin/createuser $New_User ` ;

I have tried attaching using DBI but don't know what DB to attach to.

Any hints or tips appreciated.

--
Danny Aldham     Providing Certified Internetworking Solutions to Business
www.postino.com  E-Mail, Web Servers, Web Databases, SQL PHP & Perl

Re: Creating users from shell or perl script

From
Oliver Elphick
Date:
On Fri, 2001-11-23 at 03:29, Danny Aldham wrote:
>
> I have written a program that will install some software,
> create a database, and create a couple of postgres users. Most
> everything is working, but I cannot see how to create postgres
> users with set passwords. If the script calls createuser the
> prompts do not come to the user, and anyway I do not want them to.
> I want to be able to create the user with a password and not have
> the person running the script see it. Right now I am trying in perl:
> $output = `/usr/local/pgsql/bin/createuser $New_User ` ;

You don't have to do this through the shell scripts; you can use SQL
directly:

CREATE USER username WITH PASSWORD 'password'

> I have tried attaching using DBI but don't know what DB to attach to.

You can attach to any database to do this, but template1 should always
exist and should be your default choice.

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C

     "The LORD is nigh unto all them that call upon him, to
      all that call upon him in truth."
                                   Psalms 145:18

Attachment

Re: Creating users from shell or perl script

From
Mo Holkar
Date:
At 06:59 23/11/01, you wrote:
>On Fri, 2001-11-23 at 03:29, Danny Aldham wrote:
> >=20
> > I have written a program that will install some software,
> > create a database, and create a couple of postgres users. Most
> > everything is working, but I cannot see how to create postgres
> > users with set passwords. If the script calls createuser the=20
> > prompts do not come to the user, and anyway I do not want them to.
> > I want to be able to create the user with a password and not have
> > the person running the script see it. Right now I am trying in perl:
> > $output =3D `/usr/local/pgsql/bin/createuser $New_User ` ;
>
>You don't have to do this through the shell scripts; you can use SQL
>directly:
>
>CREATE USER username WITH PASSWORD 'password'


If your situation is that you _have_to_ run it from the shell, you can run
this single query with something like:

$ psql -c "CREATE USER username WITH PASSWORD 'password'"

or if you have a load of them to add and don't want to run a separate psql
each time, you can read a set of queries in from a file using psql --file
filename'

See the section of the docs on command-line options for psql, there's loads
of useful things you can do with it.

best,

Mo



Mo Holkar
Digital Mind Games -- log on to take over
mo.holkar@digitalmindgames.com
http://www.digitalmindgames.com