1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-07 19:06:32 +03:00

I have large database and with this DB work more users and I very need

more restriction for fretful users. The current PG allow define only
NO-CREATE-DB and NO-CREATE-USER restriction, but for some users I need
NO-CREATE-TABLE and NO-LOCK-TABLE.

This patch add to current code NOCREATETABLE and NOLOCKTABLE feature:

CREATE USER username
    [ WITH
     [ SYSID uid ]
     [ PASSWORD 'password' ] ]
    [ CREATEDB   | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ]
->  [ CREATETABLE | NOCREATETABLE ] [ LOCKTABLE | NOLOCKTABLE ]
    ...etc.

 If CREATETABLE or LOCKTABLE is not specific in CREATE USER command,
as default is set CREATETABLE or LOCKTABLE (true).

 A user with NOCREATETABLE restriction can't call CREATE TABLE or
SELECT INTO commands, only create temp table is allow for him.

                                                Karel
This commit is contained in:
Bruce Momjian
2000-06-09 15:51:02 +00:00
parent a672e9650a
commit 85add42a57
13 changed files with 225 additions and 53 deletions

View File

@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
* $Id: parsenodes.h,v 1.106 2000/06/09 01:44:26 momjian Exp $
* $Id: parsenodes.h,v 1.107 2000/06/09 15:51:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -290,7 +290,7 @@ typedef struct DropPLangStmt
/* ----------------------
* Create/Alter/Drop User Statements
* Create/Alter/Drop User Statements
* ----------------------
*/
typedef struct CreateUserStmt
@@ -301,6 +301,8 @@ typedef struct CreateUserStmt
int sysid; /* PgSQL system id (-1 if don't care) */
bool createdb; /* Can the user create databases? */
bool createuser; /* Can this user create users? */
bool createtable; /* Can this user create tables? */
bool locktable; /* Can this user lock tables? */
List *groupElts; /* The groups the user is a member of */
char *validUntil; /* The time the login is valid until */
} CreateUserStmt;
@@ -312,6 +314,8 @@ typedef struct AlterUserStmt
char *password; /* PostgreSQL user password */
int createdb; /* Can the user create databases? */
int createuser; /* Can this user create users? */
bool createtable; /* Can this user create tables? */
bool locktable; /* Can this user lock tables? */
char *validUntil; /* The time the login is valid until */
} AlterUserStmt;