Ok. But apart from the risk with having the physical access to the computer, would it be a reasonable safe solution to limit the access with a password then ? So that, assuming a user does not have the possibility to get any kind of root access, there is no way to read or copy the database unless you login as the correct user ? And if only the program knows the password, then the user running the program will not be able to access the database, except through the program ? Is there a way to assure that the database does not get stored on disk ? If my program, everytime it starts, would create or build up the database could this database be kept in RAM ? Or does postgres automatically create a database file or something ? Do you understand what i mean ? Another question, are md5 passowords supported under windows ? Regards, Marcus -----Original Message----- From: Richard Huxton [mailto:dev@xxxxxxxxxxxx] Sent: den 23 augusti 2007 16:02 To: Lange Marcus; PG-General Mailing List Subject: Re: Local authentication/security Lange Marcus wrote: > Hi, > > I guess the answer to the 2 questions would be, yes the user will > probably have physical access to the machine, but will not have > superuser access. The OS is, atleast for now, windows. > > I have been looking and searching manuals and so on for different > methods but I still haven´t figured out how or if it is possible. To > be more specific about what I really want: I have an application that > will insert some data into a database and while this data is in the > database I dont want it to be possible to copy it or in any other way > get access to it, except through that application that inserted it. > It woule be acceptable if, and maybe even preferbly when the program > exit, that the database are deleted (so that it is only stored in > memory while using it). But if there is a way to build up a database > that is protected when stored on disc that would also be acceptable. If the user has physical access to the machine then there's nothing you can do to stop someone who is (a) determined and (b) knowledgeable. If you want to stop casual access though: 1. Make sure PostgreSQL + its files aren't accessible to normal users. 2. Make sure application will only run as user X 3. Set up a pgpass.conf file only accessible by user X 4. Lock down BIOS etc. to prevent someone booting from a CD-ROM or USB stick. http://www.postgresql.org/docs/8.2/static/libpq-pgpass.html That should cope with someone who doesn't know what they're doing. If you're worried about them removing the hard-disk then you'll need to set up an encrypted filesystem and figure out a way to get a password entered on reboot. -- Richard Huxton Archonet Ltd ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match