diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml
index b0981fdd5d5..e4428fc9396 100644
--- a/doc/src/sgml/ref/alter_role.sgml
+++ b/doc/src/sgml/ref/alter_role.sgml
@@ -38,7 +38,7 @@ ALTER ROLE name [ [ WITH ] name RENAME TO new_name
-ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
+ALTER ROLE { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER ROLE { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET ALL
diff --git a/doc/src/sgml/ref/alter_user.sgml b/doc/src/sgml/ref/alter_user.sgml
index 7588f636ed2..2302ce3a65c 100644
--- a/doc/src/sgml/ref/alter_user.sgml
+++ b/doc/src/sgml/ref/alter_user.sgml
@@ -38,10 +38,10 @@ ALTER USER name [ [ WITH ] name RENAME TO new_name
-ALTER USER name SET configuration_parameter { TO | = } { value | DEFAULT }
-ALTER USER name SET configuration_parameter FROM CURRENT
-ALTER USER name RESET configuration_parameter
-ALTER USER name RESET ALL
+ALTER USER { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
+ALTER USER { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
+ALTER USER { name | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
+ALTER USER { name | ALL } [ IN DATABASE database_name ] RESET ALL
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index f8bb66501ad..563dc91a869 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -1049,12 +1049,20 @@ AlterUserStmt:
AlterUserSetStmt:
- ALTER USER RoleId SetResetClause
+ ALTER USER RoleId opt_in_database SetResetClause
{
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
n->role = $3;
- n->database = NULL;
- n->setstmt = $4;
+ n->database = $4;
+ n->setstmt = $5;
+ $$ = (Node *)n;
+ }
+ | ALTER USER ALL opt_in_database SetResetClause
+ {
+ AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
+ n->role = NULL;
+ n->database = $4;
+ n->setstmt = $5;
$$ = (Node *)n;
}
;