I just created a new cluster using PostgreSQL 8.3 and looks like everything worked. What I am having issues with is trying to start the server of this new cluster. My two clusters are on different ports. When looking online to start the new cluster, I tried executing the following line:

postgres -D C:\my\new\cluster\data\directory

This is the error I get:

The server must be started under an unprivileged user ID to prevent possible system security compromises. See the documentation for more information on how to properly start the server.

So I know I am running the command from administrator but I don't know how to run it from an "unprivileged user ID". Any help would be great!

  • 2
    Are there any other accounts with which you can login to the server? Also, I've found pg_ctl to be quite useful. Finally, why are you running 8.3? It's not supported anymore.
    – swasheck
    Feb 19, 2013 at 23:00
  • 2
    You shouldn't be working as "administrator" in the first place. The 8.3 installer should have created a "postgres" Windows user. Use that (e.g. trough runas) to start the server. But you should really upgrade to a current (and supported) version.
    – user1822
    Feb 19, 2013 at 23:06

1 Answer 1


Aside from the upgrade recommendation (which I second btw but will not solve your current problem) your basic issue is that PostgreSQL will not run as an administrative user. This is a security feature.

Now, if this is a desktop not on a domain model, you need to create a limited user, and run initdb as that (or assign ownership to all files under the existing second cluster to that user if it already exists which it may). Then read the runas documentation.

Then run something like:

 runas /user:<computername>\postgres postgres -D C:\my\new\cluster\data\directory

So if your computer name is mycomputer, it would look like:

runas /user:mycomputer\postgres postgres -D C:\my\new\cluster\data\directory

You can also:

pg_ctl register -N postgresqlc2 -U postgres -P [password] -D C:\my\new\cluster\data\directory ....
  • +1 ... then you can start and stop the service from services.msc or through command line net start postgresqlc2 and net stop postgresqlc2
    – swasheck
    Feb 20, 2013 at 3:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.