Обсуждение: Starting PostgreSQL from a windows application

Поиск
Список
Период
Сортировка

Starting PostgreSQL from a windows application

От
Hovik Avedian
Дата:
Hello,

I have installed Postures on a Windows server and it starts as a service and all is OK.

I have 2 questions:

1. I need to be able to wrap PostgreSQL as part of my application and, therefore, start it as part of my app. start-up. I know that pg_ctl start is the command, but as your documentation clearly states, PostgreSQL can only be started by a non-privileged user. Here lies my problem.
Most software needs a privileged user to start it. So how can I start PostgreSQL as a different user from the one which needs to be logged in to start the other software?

2. How do I give my users a totally new database. Is backup/restore the only mechanism?
Can I copy (parts of) the data directory, from one installation of PostgreSQL to another?

Thanks in advance for your support,

Hovik Avedian
Senior Consultant
Ebase Technology Ltd.


Re: Starting PostgreSQL from a windows application

От
Andy Shellam
Дата:
Hi Hovik:
> Hello,
>
> I have installed Postures on a Windows server and it starts as a
> service and all is OK.
>
> I have 2 questions:
>
> 1. I need to be able to wrap PostgreSQL as part of my application and,
> therefore, start it as part of my app. start-up. I know that pg_ctl
> start is the command, but as your documentation clearly states,
> PostgreSQL can only be started by a non-privileged user. Here lies my
> problem.
> Most software needs a privileged user to start it. So how can I start
> PostgreSQL as a different user from the one which needs to be logged
> in to start the other software?
You would need the commands to start and stop a Windows service ("net
start <ServiceName>" I believe).  Does it really matter that PostgreSQL
is running while the application isn't?
>
> 2. How do I give my users a totally new database. Is backup/restore
> the only mechanism?
> Can I copy (parts of) the data directory, from one installation of
> PostgreSQL to another?
NO!! Never touch the raw PostgreSQL data files.  You could, as part of
your application, build in an SQL script of your DB schema, created by
"pg_dump --schema-only" that gets run through psql, or piped to an
Npgsql .NET library, ODBC connection or other technology.
>
> Thanks in advance for your support,
>
> Hovik Avedian
> Senior Consultant
> Ebase Technology Ltd.
>
>
> !DSPAM:14,44c7a9ac143291148420564!

--
Andy Shellam <mailto:andy.shellam@mailnetwork.co.uk>,
the Mail Network <http://www.mailnetwork.co.uk/>

NetServe Support - we don't go the extra mile; we go the whole distance!

p: (+44) 0 845 838 0879 / +44 0 7818 000834
w: www.mailnetwork.co.uk <http://www.mailnetwork.co.uk/>
e: support@mailnetwork.co.uk <mailto:support@mailnetwork.co.uk>




Re: Starting PostgreSQL from a windows application

От
"Magnus Hagander"
Дата:
> I have installed Postures on a Windows server and it starts as a
> service and all is OK.
>
> I have 2 questions:
>
> 1. I need to be able to wrap PostgreSQL as part of my application
> and, therefore, start it as part of my app. start-up. I know that
> pg_ctl start is the command, but as your documentation clearly
> states, PostgreSQL can only be started by a non-privileged user.
> Here lies my problem.
> Most software needs a privileged user to start it. So how can I
> start PostgreSQL as a different user from the one which needs to be
> logged in to start the other software?

This will be fixed in 8.2 (it's fixed in the development snapshots). You
can find backported versions of initdb and pg_ctl on
http://people.planetpostgresql.org/mha/index.php?/archives/93-Backported
-run-as-admin-tools.html.

I would not recommend these for a big production deployment, because
they are *not* official PostgreSQL binaries (the database backend still
is, though, so it *should* be safe. But they have not been as well
tested as postgresql-proper). But for a pilot install that will go to
8.2, definitely worth using.


> 2. How do I give my users a totally new database. Is backup/restore
> the only mechanism?
> Can I copy (parts of) the data directory, from one installation of
> PostgreSQL to another?

Backup/restore, or you can create a manual sql script that you pass to
psql that generates all your objects.


//Magnus