Обсуждение: Windows Installation User account - Correct database for us
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
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
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
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
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.
> 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
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
> 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
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