{"Entry":{"collection":"sql","key":"alter-role","name":"ALTER ROLE","aliases":["alterrole"],"metadata":{"aliases":["alterrole"],"changed_in":["8.2","8.3","9.0","9.1","9.3","9.5","9.6","10","11","14"],"changes":[{"from":"8.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"8.1"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER ROLE name SET configuration_parameter { TO | = } { value | DEFAULT }","ALTER ROLE name RESET configuration_parameter"],"removed":["ALTER ROLE name SET parameter { TO | = } { value | DEFAULT }","ALTER ROLE name RESET parameter"]},"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER ROLE name SET configuration_parameter FROM CURRENT","ALTER ROLE name RESET configuration_parameter","ALTER ROLE name RESET ALL"],"removed":[]},"to":"8.3"},{"from":"8.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","examples"],"removed":[]},"status":"changed","synopsis":null,"to":"8.4"},{"from":"8.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes","examples"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER ROLE name RENAME TO new_name","ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }","ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT","ALTER ROLE name [ IN DATABASE database_name ] RESET configuration_parameter","ALTER ROLE name [ IN DATABASE database_name ] RESET ALL"],"removed":["where option can be:","ALTER ROLE name RENAME TO newname"]},"to":"9.0"},{"from":"9.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["| REPLICATION | NOREPLICATION"],"removed":[]},"to":"9.1"},{"from":"9.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","see_also"],"removed":[]},"status":"changed","synopsis":{"added":["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"],"removed":[]},"to":"9.3"},{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER ROLE role_specification [ WITH ] option [ ... ]","| BYPASSRLS | NOBYPASSRLS","| CONNECTION LIMIT connlimit","ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }","ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT","ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter","ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL","role_name","| CURRENT_USER","| SESSION_USER"],"removed":["ALTER ROLE name [ [ WITH ] option [ ... ] ]","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"]},"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":[],"removed":["| CREATEUSER | NOCREATEUSER"]},"to":"9.6"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":[],"removed":["| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'"]},"to":"10"},{"from":"10","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters","examples"],"removed":[]},"status":"changed","synopsis":{"added":["| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL"],"removed":[]},"to":"11"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["| CURRENT_ROLE","| CURRENT_USER"],"removed":[]},"to":"14"},{"from":"15","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"16"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"17"}],"content_hash":"23634aab000f59669dd13cafef8c960da2206afecc6bc8e9fc203028fdaceb2d","editorial":{},"first_version":"8.1","group":"role","imported_at":"2026-09-30T17:43:38.22045+08:00","last_version":"20","name":"ALTER ROLE","object":"ROLE","position":5013,"present_in":["8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"change a database role","purpose_zh":"","related":["create-role","drop-role","alter-database","set"],"slug":"alter-role","source_rev":"a709ab85","synopsis":"ALTER ROLE role_specification [ WITH ] option [ ... ]\n\nwhere option can be:\n\nSUPERUSER | NOSUPERUSER\n| CREATEDB | NOCREATEDB\n| CREATEROLE | NOCREATEROLE\n| INHERIT | NOINHERIT\n| LOGIN | NOLOGIN\n| REPLICATION | NOREPLICATION\n| BYPASSRLS | NOBYPASSRLS\n| CONNECTION LIMIT connlimit\n| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL\n| VALID UNTIL 'timestamp'\n\nALTER ROLE name RENAME TO new_name\n\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL\n\nwhere role_specification can be:\nrole_name\n| CURRENT_ROLE\n| CURRENT_USER\n| SESSION_USER","verb":"ALTER"}},"Definition":{"Collection":"sql","Key":"alter-role","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"alter-role","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-ALTERROLE","file":"sql-alterrole.html","lang":"en","name":"ALTER ROLE","purpose":"change a database role","purpose_zh":"","related":["create-role","drop-role","alter-database","set"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e changes the attributes of a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e role.\u003c/p\u003e\u003cp\u003eThe first variant of this command listed in the synopsis can change many of the role attributes that can be specified in \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e. (All the possible attributes are covered, except that there are no options for adding or removing memberships; use \u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\"\u003e\u003ccode class=\"command\"\u003eGRANT\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\"\u003e\u003ccode class=\"command\"\u003eREVOKE\u003c/code\u003e\u003c/a\u003e for that.) Attributes not mentioned in the command retain their previous settings. Database superusers can change any of these settings for any role, except for changing the \u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e property for the \u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\"\u003e\u003c/a\u003e\u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\" title=\"Bootstrap superuser\"\u003ebootstrap superuser\u003c/a\u003e. Non-superuser roles having \u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e privilege can change most of these properties, but only for non-superuser and non-replication roles for which they have been granted \u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e. Non-superusers cannot change the \u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e property and can change the \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e, \u003ccode class=\"literal\"\u003eREPLICATION\u003c/code\u003e, and \u003ccode class=\"literal\"\u003eBYPASSRLS\u003c/code\u003e properties only if they possess the corresponding property themselves. Ordinary roles can only change their own password.\u003c/p\u003e\u003cp\u003eThe second variant changes the name of the role. Database superusers can rename any role. Roles having \u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e privilege can rename non-superuser roles for which they have been granted \u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e. The current session user cannot be renamed. (Connect as a different user if you need to do that.) Because \u003ccode class=\"literal\"\u003eMD5\u003c/code\u003e-encrypted passwords use the role name as cryptographic salt, renaming a role clears its password if the password is \u003ccode class=\"literal\"\u003eMD5\u003c/code\u003e-encrypted.\u003c/p\u003e\u003cp\u003eThe remaining variants change a role's session default for a configuration variable, either for all databases or, when the \u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e clause is specified, only for sessions in the named database. If \u003ccode class=\"literal\"\u003eALL\u003c/code\u003e is specified instead of a role name, this changes the setting for all roles. Using \u003ccode class=\"literal\"\u003eALL\u003c/code\u003e with \u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e is effectively the same as using the command \u003ccode class=\"literal\"\u003eALTER DATABASE ... SET ...\u003c/code\u003e.\u003c/p\u003e\u003cp\u003eWhenever the role subsequently starts a new session, the specified value becomes the session default, overriding whatever setting is present in \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e or has been received from the \u003ccode class=\"command\"\u003epostgres\u003c/code\u003e command line. This only happens at login time; executing \u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\"\u003e\u003ccode class=\"command\"\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e or \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"\u003e\u003ccode class=\"command\"\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e does not cause new configuration values to be set. Settings set for all databases are overridden by database-specific settings attached to a role. Settings for specific databases or specific roles override settings for all roles.\u003c/p\u003e\u003cp\u003eSuperusers can change anyone's session defaults. Roles having \u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e privilege can change defaults for non-superuser roles for which they have been granted \u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e. Ordinary roles can only set defaults for themselves. Certain configuration variables cannot be set this way, or can only be set if a superuser issues the command. Only superusers can change a setting for all roles in all databases.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the role whose attributes are to be altered.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCURRENT_ROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCURRENT_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAlter the current user instead of an explicitly identified role.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSESSION_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eAlter the current session user instead of an explicitly identified role.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCONNECTION LIMIT\u003c/code\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e[ \u003ccode class=\"literal\"\u003eENCRYPTED\u003c/code\u003e ] \u003ccode class=\"literal\"\u003ePASSWORD\u003c/code\u003e '\u003cem class=\"replaceable\"\u003e\u003ccode\u003epassword\u003c/code\u003e\u003c/em\u003e'\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ePASSWORD NULL\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eVALID UNTIL\u003c/code\u003e '\u003cem class=\"replaceable\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/em\u003e'\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThese clauses alter attributes originally set by \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e. For more information, see the \u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e reference page.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new name of the role.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the database the configuration variable should be set in.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eSet this role's session default for the specified configuration parameter to the given value. If \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e is \u003ccode class=\"literal\"\u003eDEFAULT\u003c/code\u003e or, equivalently, \u003ccode class=\"literal\"\u003eRESET\u003c/code\u003e is used, the role-specific variable setting is removed, so the role will inherit the system-wide default setting in new sessions. Use \u003ccode class=\"literal\"\u003eRESET ALL\u003c/code\u003e to clear all role-specific settings. \u003ccode class=\"literal\"\u003eSET FROM CURRENT\u003c/code\u003e saves the session's current value of the parameter as the role-specific value. If \u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e is specified, the configuration parameter is set or removed for the given role and database only.\u003c/p\u003e\u003cp\u003eRole-specific variable settings take effect only at login; \u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\"\u003e\u003ccode class=\"command\"\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"\u003e\u003ccode class=\"command\"\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e do not process role-specific variable settings.\u003c/p\u003e\u003cp\u003eSee \u003ca href=\"/docs/18/sql-set.html\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/runtime-config.html\" title=\"Chapter 19. Server Configuration\"\u003eChapter 19\u003c/a\u003e for more information about allowed parameter names and values.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eUse \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e to add new roles, and \u003ca href=\"/docs/18/sql-droprole.html\" title=\"DROP ROLE\"\u003e\u003ccode class=\"command\"\u003eDROP ROLE\u003c/code\u003e\u003c/a\u003e to remove a role.\u003c/p\u003e\u003cp\u003e\u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e cannot change a role's memberships. Use \u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\"\u003e\u003ccode class=\"command\"\u003eGRANT\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\"\u003e\u003ccode class=\"command\"\u003eREVOKE\u003c/code\u003e\u003c/a\u003e to do that.\u003c/p\u003e\u003cp\u003eCaution must be exercised when specifying an unencrypted password with this command. The password will be transmitted to the server in cleartext, and it might also be logged in the client's command history or the server log. \u003ca href=\"/docs/18/app-psql.html\" title=\"psql\"\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epsql\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e contains a command \u003ccode class=\"command\"\u003e\\password\u003c/code\u003e that can be used to change a role's password without exposing the cleartext password.\u003c/p\u003e\u003cp\u003eIt is also possible to tie a session default to a specific database rather than to a role; see \u003ca href=\"/docs/18/sql-alterdatabase.html\" title=\"ALTER DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e. If there is a conflict, database-role-specific settings override role-specific ones, which in turn override database-specific ones.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eChange a role's password:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE davide WITH PASSWORD 'hu8jmn3';\n\u003c/pre\u003e\u003cp\u003eRemove a role's password:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE davide WITH PASSWORD NULL;\n\u003c/pre\u003e\u003cp\u003eChange a password expiration date, specifying that the password should expire at midday on 4th May 2015 using the time zone which is one hour ahead of \u003cacronym\u003eUTC\u003c/acronym\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';\n\u003c/pre\u003e\u003cp\u003eMake a password valid forever:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE fred VALID UNTIL 'infinity';\n\u003c/pre\u003e\u003cp\u003eGive a role the ability to manage other roles and create new databases:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE miriam CREATEROLE CREATEDB;\n\u003c/pre\u003e\u003cp\u003eGive a role a non-default setting of the \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\"\u003emaintenance_work_mem\u003c/a\u003e parameter:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE worker_bee SET maintenance_work_mem = 100000;\n\u003c/pre\u003e\u003cp\u003eGive a role a non-default, database-specific setting of the \u003ca href=\"/docs/18/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES\"\u003eclient_min_messages\u003c/a\u003e parameter:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003eThe \u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e statement is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-role/?v=18\" title=\"CREATE ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-role/?v=18\" title=\"DROP ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-database/?v=18\" title=\"ALTER DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"ALTER ROLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e [ WITH ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e [ ... ]\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e can be:\u003c/span\u003e\n\n      SUPERUSER | NOSUPERUSER\n    | CREATEDB | NOCREATEDB\n    | CREATEROLE | NOCREATEROLE\n    | INHERIT | NOINHERIT\n    | LOGIN | NOLOGIN\n    | REPLICATION | NOREPLICATION\n    | BYPASSRLS | NOBYPASSRLS\n    | CONNECTION LIMIT \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\n    | [ ENCRYPTED ] PASSWORD '\u003cem class=\"replaceable\"\u003e\u003ccode\u003epassword\u003c/code\u003e\u003c/em\u003e' | PASSWORD NULL\n    | VALID UNTIL '\u003cem class=\"replaceable\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/em\u003e'\n\nALTER ROLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\n\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e { TO | = } { \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e | DEFAULT }\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e FROM CURRENT\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] RESET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] RESET ALL\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e can be:\u003c/span\u003e\n\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_name\u003c/code\u003e\u003c/em\u003e\n  | CURRENT_ROLE\n  | CURRENT_USER\n  | SESSION_USER","synopsis_text":"ALTER ROLE role_specification [ WITH ] option [ ... ]\n\nwhere option can be:\n\nSUPERUSER | NOSUPERUSER\n| CREATEDB | NOCREATEDB\n| CREATEROLE | NOCREATEROLE\n| INHERIT | NOINHERIT\n| LOGIN | NOLOGIN\n| REPLICATION | NOREPLICATION\n| BYPASSRLS | NOBYPASSRLS\n| CONNECTION LIMIT connlimit\n| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL\n| VALID UNTIL 'timestamp'\n\nALTER ROLE name RENAME TO new_name\n\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL\n\nwhere role_specification can be:\nrole_name\n| CURRENT_ROLE\n| CURRENT_USER\n| SESSION_USER"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"alter-role","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"ALTER ROLE","Summary":"更改数据库角色","BodyHTML":"\u003cpre\u003eALTER ROLE role_specification [ WITH ] option [ ... ]\n\n其中option可以是：\n\nSUPERUSER | NOSUPERUSER\n| CREATEDB | NOCREATEDB\n| CREATEROLE | NOCREATEROLE\n| INHERIT | NOINHERIT\n| LOGIN | NOLOGIN\n| REPLICATION | NOREPLICATION\n| BYPASSRLS | NOBYPASSRLS\n| CONNECTION LIMIT connlimit\n| [ ENCRYPTED ] PASSWORD \u0026#39;password\u0026#39; | PASSWORD NULL\n| VALID UNTIL \u0026#39;timestamp\u0026#39;\n\nALTER ROLE name RENAME TO new_name\n\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL\n\n其中role_specification可以是：\nrole_name\n| CURRENT_ROLE\n| CURRENT_USER\n| SESSION_USER\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER ROLE\u003c/code\u003e更改 \u003cspan\u003ePostgreSQL\u003c/span\u003e角色的属性。\u003c/p\u003e\u003cp\u003e语法概要中列出的第一种形式可以更改许多可在 \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e中指定的角色属性。（涵盖了所有可能的属性，但没有用于添加或移除成员资格的选项；为此请使用 \u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\" rel=\"nofollow\"\u003e\u003ccode\u003eGRANT\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\" rel=\"nofollow\"\u003e\u003ccode\u003eREVOKE\u003c/code\u003e\u003c/a\u003e。）命令中未提及的属性保持原有设置不变。数据库超级用户可以更改任何角色的这些设置，但不能更改\u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\" rel=\"nofollow\"\u003e\u003c/a\u003e\u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\" title=\"引导超级用户\" rel=\"nofollow\"\u003e引导超级用户\u003c/a\u003e的 \u003ccode\u003eSUPERUSER\u003c/code\u003e属性。拥有\u003ccode\u003eCREATEROLE\u003c/code\u003e权限的非超级用户角色也可以更改其中的大多数属性，但只能更改其已被授予\u003ccode\u003eADMIN OPTION\u003c/code\u003e的、非超级用户且非复制角色的这些属性。非超级用户不能更改\u003ccode\u003eSUPERUSER\u003c/code\u003e属性；只有其自身也拥有相应属性时，才能更改 \u003ccode\u003eCREATEDB\u003c/code\u003e、\u003ccode\u003eREPLICATION\u003c/code\u003e和\u003ccode\u003eBYPASSRLS\u003c/code\u003e属性。普通角色只能更改自己的密码。\u003c/p\u003e\u003cp\u003e第二种形式更改角色的名称。数据库超级用户可以重命名任何角色。具有 \u003ccode\u003eCREATEROLE\u003c/code\u003e权限的角色可以重命名其已被授予 \u003ccode\u003eADMIN OPTION\u003c/code\u003e的非超级用户角色。当前会话用户不能被重命名。（如果需要这样做，请以其他用户连接。）由于\u003ccode\u003eMD5\u003c/code\u003e加密的密码使用角色名作为密码学盐值，如果该密码采用 \u003ccode\u003eMD5\u003c/code\u003e加密，重命名角色会清除其密码。\u003c/p\u003e\u003cp\u003e其余形式更改角色针对配置变量的会话默认值，可以针对所有数据库，也可以在指定 \u003ccode\u003eIN DATABASE\u003c/code\u003e子句时仅针对指定数据库中的会话。如果指定的是 \u003ccode\u003eALL\u003c/code\u003e而不是角色名，就会更改所有角色的该项设置。将 \u003ccode\u003eALL\u003c/code\u003e与\u003ccode\u003eIN DATABASE\u003c/code\u003e一起使用，实际上与命令 \u003ccode\u003eALTER DATABASE ... SET ...\u003c/code\u003e的效果相同。\u003c/p\u003e\u003cp\u003e以后每当该角色启动一个新会话时，指定值就会成为该会话的默认值，并覆盖 \u003ccode\u003epostgresql.conf\u003c/code\u003e中已有的设置或从 \u003ccode\u003epostgres\u003c/code\u003e命令行接收到的设置。这只会在登录时发生；执行 \u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e或 \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\" rel=\"nofollow\"\u003e\u003ccode\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e不会导致设置新的配置值。针对所有数据库的设置会被附着于某个角色的数据库特定设置覆盖。针对特定数据库或特定角色的设置会覆盖针对所有角色的设置。\u003c/p\u003e\u003cp\u003e超级用户可以更改任何角色的会话默认值。具有\u003ccode\u003eCREATEROLE\u003c/code\u003e权限的角色可以更改其已被授予\u003ccode\u003eADMIN OPTION\u003c/code\u003e的非超级用户角色的默认值。普通角色只能为自己设置默认值。某些配置变量不能以这种方式设置，或者只有由超级用户发出该命令时才能设置。只有超级用户才能更改所有数据库中所有角色的设置。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将要修改其属性的角色名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eCURRENT_ROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eCURRENT_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e修改当前用户，而不是显式标识的角色。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eSESSION_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e修改当前会话用户，而不是显式标识的角色。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNOBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eCONNECTION LIMIT\u003c/code\u003e \u003cem\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e[ \u003ccode\u003eENCRYPTED\u003c/code\u003e ] \u003ccode\u003ePASSWORD\u003c/code\u003e \u0026#39;\u003cem\u003e\u003ccode\u003epassword\u003c/code\u003e\u003c/em\u003e\u0026#39;\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003ePASSWORD NULL\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eVALID UNTIL\u003c/code\u003e \u0026#39;\u003cem\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/em\u003e\u0026#39;\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这些子句用于更改最初由 \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e设置的属性。欲了解更多信息，请参见\u003ccode\u003eCREATE ROLE\u003c/code\u003e参考页。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e角色的新名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e应在其中设置该配置变量的数据库名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将该角色在指定配置参数上的会话默认值设为给定值。如果 \u003cem\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e是\u003ccode\u003eDEFAULT\u003c/code\u003e，或者等效地使用了\u003ccode\u003eRESET\u003c/code\u003e，则会移除角色特定变量设置，因此该角色在新会话中将继承系统范围的默认设置。使用 \u003ccode\u003eRESET ALL\u003c/code\u003e可清除所有角色特定设置。\u003ccode\u003eSET FROM CURRENT\u003c/code\u003e会将该参数在当前会话中的值保存为角色特定值。如果指定了\u003ccode\u003eIN DATABASE\u003c/code\u003e，则只会为给定角色和数据库设置或移除该配置参数。\u003c/p\u003e\u003cp\u003e角色特定变量设置只在登录时生效；\u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\" rel=\"nofollow\"\u003e\u003ccode\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e不会处理角色特定变量设置。\u003c/p\u003e\u003cp\u003e关于允许的参数名称和值详见\u003ca href=\"/docs/18/sql-set.html\" title=\"SET\" rel=\"nofollow\"\u003e\u003cspan\u003eSET\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/18/runtime-config.html\" rel=\"nofollow\"\u003e第 19 章\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e注解\u003c/h2\u003e\u003cp\u003e使用\u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e 添加新角色，使用\u003ca href=\"/docs/18/sql-droprole.html\" title=\"DROP ROLE\" rel=\"nofollow\"\u003e\u003ccode\u003eDROP ROLE\u003c/code\u003e\u003c/a\u003e 删除角色。\u003c/p\u003e\u003cp\u003e\u003ccode\u003eALTER ROLE\u003c/code\u003e无法更改角色的成员资格。请使用\u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\" rel=\"nofollow\"\u003e\u003ccode\u003eGRANT\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\" rel=\"nofollow\"\u003e\u003ccode\u003eREVOKE\u003c/code\u003e\u003c/a\u003e执行这类操作。\u003c/p\u003e\u003cp\u003e用这个命令指定未加密密码时必须加以注意。密码将以明文形式传输到服务器，并且也可能被记录在客户端命令历史或服务器日志中。\u003ca href=\"/docs/18/app-psql.html\" title=\"psql\" rel=\"nofollow\"\u003e\u003cspan\u003e\u003cspan\u003epsql\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e包含一个命令\u003ccode\u003e\\password\u003c/code\u003e，可用于更改角色的密码而不暴露明文密码。\u003c/p\u003e\u003cp\u003e也可以把会话默认值绑定到特定数据库，而不是角色；详见\u003ca href=\"/docs/18/sql-alterdatabase.html\" title=\"ALTER DATABASE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e。如果发生冲突，同时针对数据库和角色的设置会覆盖角色特定设置，而角色特定设置又会覆盖数据库特定设置。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e更改角色的密码：\u003c/p\u003e\u003cpre\u003eALTER ROLE davide WITH PASSWORD \u0026#39;hu8jmn3\u0026#39;;\n\u003c/pre\u003e\u003cp\u003e移除角色的密码：\u003c/p\u003e\u003cpre\u003eALTER ROLE davide WITH PASSWORD NULL;\n\u003c/pre\u003e\u003cp\u003e更改密码的失效日期，并指定该密码应在比 \u003cacronym\u003eUTC\u003c/acronym\u003e快 1 小时的时区中，于 2015 年 5 月 4 日中午失效：\u003c/p\u003e\u003cpre\u003eALTER ROLE chris VALID UNTIL \u0026#39;May 4 12:00:00 2015 +1\u0026#39;;\n\u003c/pre\u003e\u003cp\u003e使密码永久有效：\u003c/p\u003e\u003cpre\u003eALTER ROLE fred VALID UNTIL \u0026#39;infinity\u0026#39;;\n\u003c/pre\u003e\u003cp\u003e赋予角色管理其他角色和创建新数据库的能力：\u003c/p\u003e\u003cpre\u003eALTER ROLE miriam CREATEROLE CREATEDB;\n\u003c/pre\u003e\u003cp\u003e为角色指定\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\" rel=\"nofollow\"\u003emaintenance_work_mem\u003c/a\u003e参数的非默认设置：\u003c/p\u003e\u003cpre\u003eALTER ROLE worker_bee SET maintenance_work_mem = 100000;\n\u003c/pre\u003e\u003cp\u003e为角色指定\u003ca href=\"/docs/18/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES\" rel=\"nofollow\"\u003eclient_min_messages\u003c/a\u003e参数的数据库特定的非默认设置：\u003c/p\u003e\u003cpre\u003eALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER ROLE\u003c/code\u003e语句是 \u003cspan\u003ePostgreSQL\u003c/span\u003e的扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-role/?v=18\" title=\"CREATE ROLE\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-role/?v=18\" title=\"DROP ROLE\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-database/?v=18\" title=\"ALTER DATABASE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\" rel=\"nofollow\"\u003e\u003cspan\u003eSET\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"1913c742f8b927d6a5caa8431acf819d08581d0f992952bdceeed87c03190cf5","Payload":{"purpose_zh":"更改数据库角色","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e更改 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e角色的属性。\u003c/p\u003e\u003cp\u003e语法概要中列出的第一种形式可以更改许多可在 \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e中指定的角色属性。（涵盖了所有可能的属性，但没有用于添加或移除成员资格的选项；为此请使用 \u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\"\u003e\u003ccode class=\"command\"\u003eGRANT\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\"\u003e\u003ccode class=\"command\"\u003eREVOKE\u003c/code\u003e\u003c/a\u003e。）命令中未提及的属性保持原有设置不变。数据库超级用户可以更改任何角色的这些设置，但不能更改\u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\"\u003e\u003c/a\u003e\u003ca href=\"/docs/18/glossary.html#GLOSSARY-BOOTSTRAP-SUPERUSER\" title=\"引导超级用户\"\u003e引导超级用户\u003c/a\u003e的 \u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e属性。拥有\u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e权限的非超级用户角色也可以更改其中的大多数属性，但只能更改其已被授予\u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e的、非超级用户且非复制角色的这些属性。非超级用户不能更改\u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e属性；只有其自身也拥有相应属性时，才能更改 \u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e、\u003ccode class=\"literal\"\u003eREPLICATION\u003c/code\u003e和\u003ccode class=\"literal\"\u003eBYPASSRLS\u003c/code\u003e属性。普通角色只能更改自己的密码。\u003c/p\u003e\u003cp\u003e第二种形式更改角色的名称。数据库超级用户可以重命名任何角色。具有 \u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e权限的角色可以重命名其已被授予 \u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e的非超级用户角色。当前会话用户不能被重命名。（如果需要这样做，请以其他用户连接。）由于\u003ccode class=\"literal\"\u003eMD5\u003c/code\u003e加密的密码使用角色名作为密码学盐值，如果该密码采用 \u003ccode class=\"literal\"\u003eMD5\u003c/code\u003e加密，重命名角色会清除其密码。\u003c/p\u003e\u003cp\u003e其余形式更改角色针对配置变量的会话默认值，可以针对所有数据库，也可以在指定 \u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e子句时仅针对指定数据库中的会话。如果指定的是 \u003ccode class=\"literal\"\u003eALL\u003c/code\u003e而不是角色名，就会更改所有角色的该项设置。将 \u003ccode class=\"literal\"\u003eALL\u003c/code\u003e与\u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e一起使用，实际上与命令 \u003ccode class=\"literal\"\u003eALTER DATABASE ... SET ...\u003c/code\u003e的效果相同。\u003c/p\u003e\u003cp\u003e以后每当该角色启动一个新会话时，指定值就会成为该会话的默认值，并覆盖 \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e中已有的设置或从 \u003ccode class=\"command\"\u003epostgres\u003c/code\u003e命令行接收到的设置。这只会在登录时发生；执行 \u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\"\u003e\u003ccode class=\"command\"\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e或 \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"\u003e\u003ccode class=\"command\"\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e不会导致设置新的配置值。针对所有数据库的设置会被附着于某个角色的数据库特定设置覆盖。针对特定数据库或特定角色的设置会覆盖针对所有角色的设置。\u003c/p\u003e\u003cp\u003e超级用户可以更改任何角色的会话默认值。具有\u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e权限的角色可以更改其已被授予\u003ccode class=\"literal\"\u003eADMIN OPTION\u003c/code\u003e的非超级用户角色的默认值。普通角色只能为自己设置默认值。某些配置变量不能以这种方式设置，或者只有由超级用户发出该命令时才能设置。只有超级用户才能更改所有数据库中所有角色的设置。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将要修改其属性的角色名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCURRENT_ROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCURRENT_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e修改当前用户，而不是显式标识的角色。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSESSION_USER\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e修改当前会话用户，而不是显式标识的角色。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOSUPERUSER\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOCREATEDB\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOCREATEROLE\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOINHERIT\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOLOGIN\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOREPLICATION\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNOBYPASSRLS\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eCONNECTION LIMIT\u003c/code\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e[ \u003ccode class=\"literal\"\u003eENCRYPTED\u003c/code\u003e ] \u003ccode class=\"literal\"\u003ePASSWORD\u003c/code\u003e '\u003cem class=\"replaceable\"\u003e\u003ccode\u003epassword\u003c/code\u003e\u003c/em\u003e'\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ePASSWORD NULL\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eVALID UNTIL\u003c/code\u003e '\u003cem class=\"replaceable\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/em\u003e'\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这些子句用于更改最初由 \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e设置的属性。欲了解更多信息，请参见\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e参考页。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e角色的新名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e应在其中设置该配置变量的数据库名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e将该角色在指定配置参数上的会话默认值设为给定值。如果 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e是\u003ccode class=\"literal\"\u003eDEFAULT\u003c/code\u003e，或者等效地使用了\u003ccode class=\"literal\"\u003eRESET\u003c/code\u003e，则会移除角色特定变量设置，因此该角色在新会话中将继承系统范围的默认设置。使用 \u003ccode class=\"literal\"\u003eRESET ALL\u003c/code\u003e可清除所有角色特定设置。\u003ccode class=\"literal\"\u003eSET FROM CURRENT\u003c/code\u003e会将该参数在当前会话中的值保存为角色特定值。如果指定了\u003ccode class=\"literal\"\u003eIN DATABASE\u003c/code\u003e，则只会为给定角色和数据库设置或移除该配置参数。\u003c/p\u003e\u003cp\u003e角色特定变量设置只在登录时生效；\u003ca href=\"/docs/18/sql-set-role.html\" title=\"SET ROLE\"\u003e\u003ccode class=\"command\"\u003eSET ROLE\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"\u003e\u003ccode class=\"command\"\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e不会处理角色特定变量设置。\u003c/p\u003e\u003cp\u003e关于允许的参数名称和值详见\u003ca href=\"/docs/18/sql-set.html\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/18/runtime-config.html\" title=\"第 19 章 服务器配置\"\u003e第 19 章\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e使用\u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003ccode class=\"command\"\u003eCREATE ROLE\u003c/code\u003e\u003c/a\u003e 添加新角色，使用\u003ca href=\"/docs/18/sql-droprole.html\" title=\"DROP ROLE\"\u003e\u003ccode class=\"command\"\u003eDROP ROLE\u003c/code\u003e\u003c/a\u003e 删除角色。\u003c/p\u003e\u003cp\u003e\u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e无法更改角色的成员资格。请使用\u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\"\u003e\u003ccode class=\"command\"\u003eGRANT\u003c/code\u003e\u003c/a\u003e和 \u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\"\u003e\u003ccode class=\"command\"\u003eREVOKE\u003c/code\u003e\u003c/a\u003e执行这类操作。\u003c/p\u003e\u003cp\u003e用这个命令指定未加密密码时必须加以注意。密码将以明文形式传输到服务器，并且也可能被记录在客户端命令历史或服务器日志中。\u003ca href=\"/docs/18/app-psql.html\" title=\"psql\"\u003e\u003cspan class=\"refentrytitle\"\u003e\u003cspan class=\"application\"\u003epsql\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e包含一个命令\u003ccode class=\"command\"\u003e\\password\u003c/code\u003e，可用于更改角色的密码而不暴露明文密码。\u003c/p\u003e\u003cp\u003e也可以把会话默认值绑定到特定数据库，而不是角色；详见\u003ca href=\"/docs/18/sql-alterdatabase.html\" title=\"ALTER DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e。如果发生冲突，同时针对数据库和角色的设置会覆盖角色特定设置，而角色特定设置又会覆盖数据库特定设置。\u003c/p\u003e","key":"notes","title":"注解"},{"html":"\u003cp\u003e更改角色的密码：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE davide WITH PASSWORD 'hu8jmn3';\n\u003c/pre\u003e\u003cp\u003e移除角色的密码：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE davide WITH PASSWORD NULL;\n\u003c/pre\u003e\u003cp\u003e更改密码的失效日期，并指定该密码应在比 \u003cacronym\u003eUTC\u003c/acronym\u003e快 1 小时的时区中，于 2015 年 5 月 4 日中午失效：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';\n\u003c/pre\u003e\u003cp\u003e使密码永久有效：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE fred VALID UNTIL 'infinity';\n\u003c/pre\u003e\u003cp\u003e赋予角色管理其他角色和创建新数据库的能力：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE miriam CREATEROLE CREATEDB;\n\u003c/pre\u003e\u003cp\u003e为角色指定\u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\"\u003emaintenance_work_mem\u003c/a\u003e参数的非默认设置：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE worker_bee SET maintenance_work_mem = 100000;\n\u003c/pre\u003e\u003cp\u003e为角色指定\u003ca href=\"/docs/18/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES\"\u003eclient_min_messages\u003c/a\u003e参数的数据库特定的非默认设置：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER ROLE fred IN DATABASE devel SET client_min_messages = DEBUG;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER ROLE\u003c/code\u003e语句是 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e的扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-role/?v=18\" title=\"CREATE ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-role/?v=18\" title=\"DROP ROLE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP ROLE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/alter-database/?v=18\" title=\"ALTER DATABASE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER DATABASE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/set/?v=18\" title=\"SET\"\u003e\u003cspan class=\"refentrytitle\"\u003eSET\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"ALTER ROLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e [ WITH ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e [ ... ]\n\n\u003cspan class=\"phrase\"\u003e其中\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoption\u003c/code\u003e\u003c/em\u003e可以是：\u003c/span\u003e\n\n      SUPERUSER | NOSUPERUSER\n    | CREATEDB | NOCREATEDB\n    | CREATEROLE | NOCREATEROLE\n    | INHERIT | NOINHERIT\n    | LOGIN | NOLOGIN\n    | REPLICATION | NOREPLICATION\n    | BYPASSRLS | NOBYPASSRLS\n    | CONNECTION LIMIT \u003cem class=\"replaceable\"\u003e\u003ccode\u003econnlimit\u003c/code\u003e\u003c/em\u003e\n    | [ ENCRYPTED ] PASSWORD '\u003cem class=\"replaceable\"\u003e\u003ccode\u003epassword\u003c/code\u003e\u003c/em\u003e' | PASSWORD NULL\n    | VALID UNTIL '\u003cem class=\"replaceable\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/em\u003e'\n\nALTER ROLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\n\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e { TO | = } { \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e | DEFAULT }\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] SET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e FROM CURRENT\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] RESET \u003cem class=\"replaceable\"\u003e\u003ccode\u003econfiguration_parameter\u003c/code\u003e\u003c/em\u003e\nALTER ROLE { \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e | ALL } [ IN DATABASE \u003cem class=\"replaceable\"\u003e\u003ccode\u003edatabase_name\u003c/code\u003e\u003c/em\u003e ] RESET ALL\n\n\u003cspan class=\"phrase\"\u003e其中\u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_specification\u003c/code\u003e\u003c/em\u003e可以是：\u003c/span\u003e\n\n    \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_name\u003c/code\u003e\u003c/em\u003e\n  | CURRENT_ROLE\n  | CURRENT_USER\n  | SESSION_USER","synopsis_text":"ALTER ROLE role_specification [ WITH ] option [ ... ]\n\n其中option可以是：\n\nSUPERUSER | NOSUPERUSER\n| CREATEDB | NOCREATEDB\n| CREATEROLE | NOCREATEROLE\n| INHERIT | NOINHERIT\n| LOGIN | NOLOGIN\n| REPLICATION | NOREPLICATION\n| BYPASSRLS | NOBYPASSRLS\n| CONNECTION LIMIT connlimit\n| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL\n| VALID UNTIL 'timestamp'\n\nALTER ROLE name RENAME TO new_name\n\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter\nALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL\n\n其中role_specification可以是：\nrole_name\n| CURRENT_ROLE\n| CURRENT_USER\n| SESSION_USER"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
