Обсуждение: Windows Installation User account - Correct database for us

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

Windows Installation User account - Correct database for us

От
Don Brown
Дата:
Hello

We are writing a small application and we are trying to determine if PostgreSQL is the right database for us.


The application at this stage is only for a single user and commonly for persons with little computer expertise.


When the database is installed a postgreSQL user account is created which in most cases will be the second user account on the PC.  The result of this is the user now has to select the user account when ever the computer is restarted.


The programmer working on this application has suggested looking at an imbedded database, something like H2 as an alternative.


I was hoping the members of this group may have some comments or suggestions as to the direction we should look at.


Thank you and appreciate any comments/suggestions


Don

Re: Windows Installation User account - Correct database for us

От
Steve Atkins
Дата:
On Jul 10, 2014, at 5:01 PM, Don Brown <DBrown@msd.net.au> wrote:

> Hello
>
> We are writing a small application and we are trying to determine if PostgreSQL is the right database for us.
>
> The application at this stage is only for a single user and commonly for persons with little computer expertise.
>
> When the database is installed a postgreSQL user account is created which in most cases will be the second user
accounton the PC.  The result of this is the user now has to select the user account when ever the computer is
restarted.

I'd be surprised if that was required behaviour, but I'm not really familiar with current PostgreSQL packaging for
Windows.

>  The programmer working on this application has suggested looking at an imbedded database, something like H2 as an
alternative. 

Installation and management of PostgreSQL on Windows hits occasional minor roadbumps - not a problem for someone
deployingand using PostgreSQL, but potentially a cause of support overhead if you're "invisibly" installing the
databasealong with your app and not expecting your user to be aware of it. 

If you need the power and flexibility of PostgreSQL, or want to allow your users direct database access and want to
givethem a good experience there, then the advantages probably outweigh the possible issues. If you don't need that
thenan embedded database might be a better match. 

I'd look at SQLite as an embedded alternative, myself. It's a solid embedded SQL database. If you're entirely a Java
shopthen H2 might well be a good choice too. 

>
> I was hoping the members of this group may have some comments or suggestions as to the direction we should look at.
>
> Thank you and appreciate any comments/suggestions

Cheers,
  Steve



Re: Windows Installation User account - Correct database for us

От
John R Pierce
Дата:
On 7/10/2014 5:01 PM, Don Brown wrote:
When the database is installed a postgreSQL user account is created which in most cases will be the second user account on the PC.  The result of this is the user now has to select the user account when ever the computer is restarted.

I thought I saw that the latest versions of the eDB PostgreSQL installer for Windows are using the Network Service built-in account rather than creating a special user ?

anyways even if they are creating a service account, it should be flagged such that its not valid for regular login, hence doesn't show up on the desktop login, much the same as quite a few built in accounts, like the IUSR_machinename account that Microsoft's IIS webserver uses by default.

-- 
john r pierce                                      37N 122W
somewhere on the middle of the left coast

Re: Windows Installation User account - Correct database for us

От
David G Johnston
Дата:
Don Brown wrote
> Thank you and appreciate any comments/suggestions

Host the database in a shared-tenent arrangement and have your application
remotely connect to it or to an intermediary application that will then
perform the work and simply deal with input/output with the client.

Dave




--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Windows-Installation-User-account-Correct-database-for-us-tp5811204p5811211.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


Re: Windows Installation User account - Correct database for us

От
Thomas Kellerer
Дата:
> When the database is installed a postgreSQL user account is created
> which in most cases will be the second user account on the PC.

No, not any longer. This has changed with 9.1 or 9.2 (don't remember).
The Postgres service that is installed uses the "local network" account.

> The programmer working on this application has suggested looking at
> an imbedded database, something like H2 as an alternative.

If that is really a single user/application only database, an embedded database might actually be a better choice.

> I was hoping the members of this group may have some comments or
> suggestions as to the direction we should look at.

There is another option to not "install" Postgres at all.

You can just unzip the archives (from here: http://www.enterprisedb.com/products-services-training/pgbindownload)

During installation of your application, copy the Postgres binaries somewhere and then run initdb to initialize the
datadirectory. 

Then whenever your application starts, just start Postgres "on demand" using "pg_ctl start".

You need to make sure the privileges on the data directory are defined correctly so that the postgres process can
accessthem.  

If you have an installer for your application then it should be possible to include those steps, but it's quite easy to
writea batch file for that as well. 

Regards
Thomas


Re: Windows Installation User account - Correct database for us

От
Craig Ringer
Дата:
On 07/11/2014 08:01 AM, Don Brown wrote:
> Hello
>
> We are writing a small application and we are trying to determine if
> PostgreSQL is the right database for us.
>
> The application at this stage is only for a single user and commonly for
> persons with little computer expertise.
>
> When the database is installed a postgreSQL user account is created
> which in most cases will be the second user account on the PC.  The
> result of this is the user now has to select the user account when ever
> the computer is restarted.

You must be using a very old installer. PostgreSQL switched to
NETWORKSERVICE with the 9.2 installers. I also think that the login
rights flag (that caused the account to show up as available for a user
to log into) was fixed way before that, but I'm less sure about that.

> The programmer working on this application has suggested looking at an
> imbedded database, something like H2 as an alternative.

H2 or SQLite can be very reasonable choices for in-app embedded
databases, so long as your app can operate within their constraints on
concurrency and data size.

If you want to use PostgreSQL you should:

* Use the current version and plan for upgrades

* Bundle the .zip of the binaries in your installer rather than using
the PostgreSQL installer

* `initdb` a new data dir just for your app, in %PROGRAMDATA%

* `pg_ctl register` a service under NETWORKSERVICE, or `pg_ctl` start
and `pg_ctl stop` PostgreSQL on demand from the app

* Run PostgreSQL on a non-default port. This is important. Please do not
use port 5432 for embedded PostgreSQL installs. It'll confuse users if
they later go to install PostgreSQL themselves.

Also, please do not have your installer add the PostgreSQL binaries to
the system or user  PATH environment variables. Put them in the same
directory as your application binaries, or use a relative path to them
from your application.

Remember to plan for upgrades. Your app should be able to do an upgrade
of their PostgreSQL install when it's updated, either using pg_dump and
pg_restore, or by using pg_upgrade after performing a backup. Don't get
stuck on some ancient version because you didn't consider upgrades.

(Perhaps we should add a section on this to the documentation?)

--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


Re: Windows Installation User account - Correct database for us

От
Wolfgang Keller
Дата:
> H2 or SQLite can be very reasonable choices for in-app embedded
> databases, so long as your app can operate within their constraints on
> concurrency and data size.

Firefox uses SQLite and the places.sqlite database is notorious for
getting corrupted every five minutes. Libreoffice/Openoffice Base uses
H2 and there are plenty of reports by users about data losses due to
database corruption.

Personally I'd *never* use an "embedded" database for anything.

Sincerely,

Wolfgang


Re: Windows Installation User account - Correct database for us

От
Adrian Klaver
Дата:
On 07/17/2014 07:30 AM, Wolfgang Keller wrote:
>> H2 or SQLite can be very reasonable choices for in-app embedded
>> databases, so long as your app can operate within their constraints on
>> concurrency and data size.
>
> Firefox uses SQLite and the places.sqlite database is notorious for
> getting corrupted every five minutes.

I have never seen that on any of the Firefox installs I have done. Maybe
I am just lucky:)

>Libreoffice/Openoffice Base uses
> H2 and there are plenty of reports by users about data losses due to
> database corruption.

Actually I thought it bundled  HSQLDB and it was optional whether you
used it or not as it supported multiple DB backends. In any case, my
experience has been that Base has issues independent of the backend.

>
> Personally I'd *never* use an "embedded" database for anything.

So I'm guessing you do not use any devices other than full blown servers:)

>
> Sincerely,
>
> Wolfgang
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com