| From: | "Stijn Vanroye" <s(dot)vanroye(at)farcourier(dot)com> | 
|---|---|
| To: | "Tumurbaatar S(dot)" <tumurbaatar(at)datacom(dot)mn> | 
| Cc: | <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: What is wrong here? | 
| Date: | 2004-04-22 11:01:19 | 
| Message-ID: | 71E201BE5E881C46811BA160694C5FCB04672C@fs1000.farcourier.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
I don't think so. I don't see why there should be a difference in executing an insert statement direct, or trought a function. You would still be simply executing an insert on a table, wich implies that the user has to have sufficient rights on that table.
Should anyone think I'm wrong (I'm still more or less a newbie with PostGres), please speak up.
Regards,
Stijn Vanroye
> -----Original Message-----
> From: Tumurbaatar S. [mailto:tumurbaatar(at)datacom(dot)mn]
> Sent: donderdag 22 april 2004 12:32
> To: Stijn Vanroye
> Subject: Re: [GENERAL] What is wrong here?
> 
> 
> Yes, the user doesn't have INSERT right on this table.
> Because I planned to force users to use the function
> instead of direct INSERT. So it is not possible?
> 
> 
> ----- Original Message ----- 
> From: "Stijn Vanroye" <s(dot)vanroye(at)farcourier(dot)com>
> To: "Tumurbaatar S." <tumurbaatar(at)datacom(dot)mn>;
> <pgsql-general(at)postgresql(dot)org>
> Sent: Thursday, April 22, 2004 19:08
> Subject: RE: [GENERAL] What is wrong here?
> 
> 
> 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
> > '^(dot)+(at)(dot)+\(dot)(dot)+$')),
> >   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
> >
> 
> 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jim Seymour | 2004-04-22 11:16:32 | Re: [OT] Tom's/Marc's spam filters? | 
| Previous Message | Fischer Ulrich | 2004-04-22 11:00:11 | Re: Restoring a Databases that features tserach2 |