Thread: Creating role using batch file in windows
Hello, What I need to do is create a batch file to be sent to client in which I have to perform create role statement. Best thing would be if the user didn't see what is happening in the console (is there a @echo off equivalent for psql). Can anyone help me with this. -- Łukasz Brodziak
Lukasz Brodziak, 25.10.2010 15:49: > Hello, > > What I need to do is create a batch file to be sent to client in which > I have to perform create role statement. Best thing would be if the > user didn't see what is happening in the console (is there a @echo off > equivalent for psql). Can anyone help me with this. > The problem with a batch file is that you will need to provide the password for the superuser in clear text - which is probablynot something you will want to do. But if that isn't a problem (and you actually know the superuser password of your client) then the following might work: ------------- snip --------------- @echo off setlocal set PGHOST=localhost set PGUSER=postgres set PGPASSWORD=the_super_secret_password createuser role_1 1> nul 2>&1 createuser role_2 1> nul 2>&1 ... endlocal ------------- snip --------------- Regards Thomas
One more question. Does the SET PGPASSWORD sets pass for the role? If not how to set the password for the role using the script provided. 2010/10/25 Thomas Kellerer <spam_eater@gmx.net>: > Lukasz Brodziak, 25.10.2010 15:49: >> >> Hello, >> >> What I need to do is create a batch file to be sent to client in which >> I have to perform create role statement. Best thing would be if the >> user didn't see what is happening in the console (is there a @echo off >> equivalent for psql). Can anyone help me with this. >> > > The problem with a batch file is that you will need to provide the password > for the superuser in clear text - which is probably not something you will > want to do. > > But if that isn't a problem (and you actually know the superuser password of > your client) then the following might work: > > ------------- snip --------------- > @echo off > setlocal > > set PGHOST=localhost > set PGUSER=postgres > set PGPASSWORD=the_super_secret_password > > createuser role_1 1> nul 2>&1 > createuser role_2 1> nul 2>&1 > ... > > endlocal > ------------- snip --------------- > > > Regards > Thomas > > > -- > Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-admin > -- Łukasz Brodziak II MU Bioinformatyka
Lukasz Brodziak, 26.10.2010 08:58: >> The problem with a batch file is that you will need to provide the password >> for the superuser in clear text - which is probably not something you will >> want to do. >> >> But if that isn't a problem (and you actually know the superuser password of >> your client) then the following might work: >> >> ------------- snip --------------- >> @echo off >> setlocal >> >> set PGHOST=localhost >> set PGUSER=postgres >> set PGPASSWORD=the_super_secret_password >> >> createuser role_1 1> nul 2>&1 >> createuser role_2 1> nul 2>&1 >> ... >> >> endlocal >> ------------- snip --------------- >> >> > One more question. Does the SET PGPASSWORD sets pass for the role? No, it sets the password for the superuser (the one that is needed to run createrole) > If not how to set the password for the role using the script provided. I don't think this can be specified with createuser, but you could use psql to run a single statememt. Something like: psql -c "create role new_role with password 'new_roles_password'" (You might need to play around with the quoting) The environment variables are then used to establish the connection to the correct Postgres instance. Regards Thomas