Обсуждение: Accessing the database
Hi! I connecting the postgreSQL database through the following code: <? $conn=pg_connect("<IP address>","<port>","","","<database>"); $index=pg_exec($conn,"select * from table1"); ?> On execution of this code from the browser, following error appears : Warning: PostgresSQL query failed: ERROR: table1: Permission denied. in /home/httpd/html/script.php3 on line 8 Where am I going wrong? Does the code have a problem or there is something wrong with the permissions. Please help me out. Thanks Pragati
On Fri, Jun 02, 2000 at 04:35:29PM +0530, Pragati Sagar wrote: > Hi! > I connecting the postgreSQL database through the following code: > > <? > $conn=pg_connect("<IP address>","<port>","","","<database>"); > $index=pg_exec($conn,"select * from table1"); > ?> > > On execution of this code from the browser, following error appears : > > Warning: PostgresSQL query failed: ERROR: table1: Permission denied. in > /home/httpd/html/script.php3 on line 8 > > Where am I going wrong? Does the code have a problem or there is something > wrong with the permissions. A quick guess: Maybe you have not created a postgres user called "httpd" (or "nobody", "daemon" etc., depending on your operating system). PHP scripts run under the UID of the web server, which usually is not the same as your personal account. So, you can either create a httpd user in postgres, or alternatively, I think that pg_connect() in PHP also offers a way to specify your username and password as parameters (check out the PHP docs on the PostgreSQL functions for details). HTH. Greetinx & have a nice weekend, Jan -- +- Jan T. Kim -------------------------------------------------------+ | email: kim@mpiz-koeln.mpg.de | | WWW: http://www.mpiz-koeln.mpg.de/~kim/ | *-----=< hierarchical systems are for files, not for humans >=-----*
Pragati, I am assuming that your webserver is running as user "nobody". If that is the case, then you need to make sure that the user "nobody" can access the table. If your scripts only do selects on the table, then this command would do the trick GRANT SELECT on table1 to nobody; Check the docs on the GRANT command, you may need to give user nobody more provledges than SELECT, if your scripts are doing other things than SELECT... http://www.postgresql.org/docs/user/sql-grant.htm Also, make sure that the user nobody exists. You may need to add this user too from a postgres superuser account... http://www.postgresql.org/docs/user/sql-createuser.htm Hope this helps, Daryl On Fri, 2 Jun 2000, Pragati Sagar wrote: ~|Hi! ~|I connecting the postgreSQL database through the following code: ~| ~|<? ~|$conn=pg_connect("<IP address>","<port>","","","<database>"); ~|$index=pg_exec($conn,"select * from table1"); ~|?> ~| ~|On execution of this code from the browser, following error appears : ~| ~|Warning: PostgresSQL query failed: ERROR: table1: Permission denied. in ~|/home/httpd/html/script.php3 on line 8 ~| ~|Where am I going wrong? Does the code have a problem or there is something ~|wrong with the permissions. ~|Please help me out. ~| ~|Thanks ~|Pragati ~|