My guess is that the user has no (insert) rights on the table Customers. 
Try something like this for your table:
GRANT [your options] ON TABLE Customers TO SomeCustomer; (or to everyone if that's 
easyer)
where your options best includes SELECT and INSERT

Regards,

Stijn Vanroye


> The following function returns this error:
> 
> pg_query(): Query failed: ERROR:  permission denied for 
> relation customers
> CONTEXT:  PL/pgSQL function "newprofile" line 8 at SQL statement
> 
> What is wrong here?
> 
> 
> CREATE SEQUENCE CustomerID;
> CREATE TABLE Customers
> (
>   CustomerID INTEGER NOT NULL DEFAULT nextval('CustomerID'),
>   IsActive BOOLEAN NOT NULL DEFAULT TRUE,
>   Email VARCHAR(64) NOT NULL CHECK (Email = substring(Email from
> '[EMAIL PROTECTED]')),
>   Password VARCHAR(15) NOT NULL CHECK (Password = 
> substring(Password from
> '^[0-9_A-Za-z]{5,15}$')),
>   FullName VARCHAR(50) NOT NULL,
>   Address VARCHAR(100) NOT NULL,
>   Phone VARCHAR(15) NOT NULL,
>   Created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
>   Accessed TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
> 
>   PRIMARY KEY (CustomerID),
>   UNIQUE (Email)
> );
> 
> CREATE FUNCTION NewProfile(VARCHAR, VARCHAR, VARCHAR, 
> VARCHAR, VARCHAR)
> RETURNS INTEGER AS '
> DECLARE
>   aEmail ALIAS FOR $1;
>   aPassword ALIAS FOR $2;
>   aName ALIAS FOR $3;
>   aAddr ALIAS FOR $4;
>   aPhone ALIAS FOR $5;
> BEGIN
>   INSERT INTO Customers(Email, Password, FullName, Address, Phone)
>     VALUES(lower(aEmail), aPassword, aName, aAddr, aPhone);
>   RETURN currval(''CustomerID'');
> END;
> ' LANGUAGE plpgsql;
> 
> GRANT EXECUTE ON FUNCTION NewProfile(VARCHAR, VARCHAR, 
> VARCHAR, VARCHAR,
> VARCHAR) TO SomeCustomer;
> 
> 
> ---------------------------(end of 
> broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faqs/FAQ.html
> 

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to