mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Create an ALTER DEFAULT PRIVILEGES command, which allows users to adjust
the privileges that will be applied to subsequently-created objects. Such adjustments are always per owning role, and can be restricted to objects created in particular schemas too. A notable benefit is that users can override the traditional default privilege settings, eg, the PUBLIC EXECUTE privilege traditionally granted by default for functions. Petr Jelinek
This commit is contained in:
@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.314 2009/09/22 23:43:38 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.315 2009/10/05 19:24:41 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -199,6 +199,7 @@ check_xact_readonly(Node *parsetree)
|
||||
case T_DropPropertyStmt:
|
||||
case T_GrantStmt:
|
||||
case T_GrantRoleStmt:
|
||||
case T_AlterDefaultPrivilegesStmt:
|
||||
case T_TruncateStmt:
|
||||
case T_DropOwnedStmt:
|
||||
case T_ReassignOwnedStmt:
|
||||
@ -701,6 +702,10 @@ ProcessUtility(Node *parsetree,
|
||||
GrantRole((GrantRoleStmt *) parsetree);
|
||||
break;
|
||||
|
||||
case T_AlterDefaultPrivilegesStmt:
|
||||
ExecAlterDefaultPrivilegesStmt((AlterDefaultPrivilegesStmt *) parsetree);
|
||||
break;
|
||||
|
||||
/*
|
||||
* **************** object creation / destruction *****************
|
||||
*/
|
||||
@ -1687,6 +1692,10 @@ CreateCommandTag(Node *parsetree)
|
||||
}
|
||||
break;
|
||||
|
||||
case T_AlterDefaultPrivilegesStmt:
|
||||
tag = "ALTER DEFAULT PRIVILEGES";
|
||||
break;
|
||||
|
||||
case T_DefineStmt:
|
||||
switch (((DefineStmt *) parsetree)->kind)
|
||||
{
|
||||
@ -2240,6 +2249,10 @@ GetCommandLogLevel(Node *parsetree)
|
||||
lev = LOGSTMT_DDL;
|
||||
break;
|
||||
|
||||
case T_AlterDefaultPrivilegesStmt:
|
||||
lev = LOGSTMT_DDL;
|
||||
break;
|
||||
|
||||
case T_DefineStmt:
|
||||
lev = LOGSTMT_DDL;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user