I have found a bug in version 7.3.2.
At creation of tables the user not having grants on it can create the table
in database. (For temporary tables all works normally).
I have written small patch, it can be incorrect, but it works for me.
see atach

                Diabolo.

---                                                                       ---
   System Administrator of                          Phone: +7-095-939-1478
      the Philological Faculty of         E-Mail: [EMAIL PROTECTED]
         Moscow State University.      Web: http://www.philol.msu.ru

*** postgresql-7.3.2.orig/src/backend/commands/tablecmds.c      Mon Dec 16 21:39:56 
2002
--- postgresql-7.3.2/src/backend/commands/tablecmds.c   Wed Mar 12 23:00:42 2003
***************
*** 128,133 ****
--- 128,139 ----
         */
        namespaceId = RangeVarGetCreationNamespace(stmt->relation);
  
+         /* Inserted by Diabolo for Check grant on create table for DB */
+       if (pg_database_aclcheck(MyDatabaseId, GetSessionUserId(),
+                               ACL_CREATE) != ACLCHECK_OK)
+               elog(ERROR, "%s: not authorized to create tables",
+                        DatabaseName);
+    
        if (!IsBootstrapProcessingMode())
        {
                AclResult       aclresult;
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

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

Reply via email to