mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Allow CREATE/ALTER ROLE PASSWORD NULL to allow restoring the default state
of having no password.
This commit is contained in:
parent
dcc7da8d5e
commit
98b3c3c450
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/create_role.sgml,v 1.5 2005/12/18 02:17:16 petere Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/create_role.sgml,v 1.6 2005/12/23 16:46:39 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -188,10 +188,13 @@ where <replaceable class="PARAMETER">option</replaceable> can be:
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Sets the role's password. (A password is only of use for
|
Sets the role's password. (A password is only of use for
|
||||||
roles having the <literal>LOGIN</literal> attribute, but you can
|
roles having the <literal>LOGIN</literal> attribute, but you
|
||||||
nonetheless define one for roles without it.)
|
can nonetheless define one for roles without it.) If you do
|
||||||
If you do not plan to use password
|
not plan to use password authentication you can omit this
|
||||||
authentication you can omit this option.
|
option. If no password is specified, the password will be set
|
||||||
|
to null and password authentication will always fail for that
|
||||||
|
user. A null password can optionally be written explicitly as
|
||||||
|
<literal>PASSWORD NULL</literal>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.166 2005/11/22 18:17:09 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.167 2005/12/23 16:46:39 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -225,7 +225,7 @@ CreateRole(CreateRoleStmt *stmt)
|
|||||||
defel->defname);
|
defel->defname);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dpassword)
|
if (dpassword && dpassword->arg)
|
||||||
password = strVal(dpassword->arg);
|
password = strVal(dpassword->arg);
|
||||||
if (dissuper)
|
if (dissuper)
|
||||||
issuper = intVal(dissuper->arg) != 0;
|
issuper = intVal(dissuper->arg) != 0;
|
||||||
@ -517,7 +517,7 @@ AlterRole(AlterRoleStmt *stmt)
|
|||||||
defel->defname);
|
defel->defname);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dpassword)
|
if (dpassword && dpassword->arg)
|
||||||
password = strVal(dpassword->arg);
|
password = strVal(dpassword->arg);
|
||||||
if (dissuper)
|
if (dissuper)
|
||||||
issuper = intVal(dissuper->arg);
|
issuper = intVal(dissuper->arg);
|
||||||
@ -573,7 +573,7 @@ AlterRole(AlterRoleStmt *stmt)
|
|||||||
!dconnlimit &&
|
!dconnlimit &&
|
||||||
!rolemembers &&
|
!rolemembers &&
|
||||||
!validUntil &&
|
!validUntil &&
|
||||||
password &&
|
dpassword &&
|
||||||
roleid == GetUserId()))
|
roleid == GetUserId()))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
@ -651,6 +651,13 @@ AlterRole(AlterRoleStmt *stmt)
|
|||||||
new_record_repl[Anum_pg_authid_rolpassword - 1] = 'r';
|
new_record_repl[Anum_pg_authid_rolpassword - 1] = 'r';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* unset password */
|
||||||
|
if (dpassword && dpassword->arg == NULL)
|
||||||
|
{
|
||||||
|
new_record_repl[Anum_pg_authid_rolpassword - 1] = 'r';
|
||||||
|
new_record_nulls[Anum_pg_authid_rolpassword - 1] = 'n';
|
||||||
|
}
|
||||||
|
|
||||||
/* valid until */
|
/* valid until */
|
||||||
if (validUntil)
|
if (validUntil)
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.517 2005/12/11 10:54:27 neilc Exp $
|
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.518 2005/12/23 16:46:39 petere Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -616,6 +616,10 @@ OptRoleElem:
|
|||||||
$$ = makeDefElem("password",
|
$$ = makeDefElem("password",
|
||||||
(Node *)makeString($2));
|
(Node *)makeString($2));
|
||||||
}
|
}
|
||||||
|
| PASSWORD NULL_P
|
||||||
|
{
|
||||||
|
$$ = makeDefElem("password", NULL);
|
||||||
|
}
|
||||||
| ENCRYPTED PASSWORD Sconst
|
| ENCRYPTED PASSWORD Sconst
|
||||||
{
|
{
|
||||||
$$ = makeDefElem("encryptedPassword",
|
$$ = makeDefElem("encryptedPassword",
|
||||||
|
Loading…
Reference in New Issue
Block a user