I. 教程
II. SQL 语言
III. 服务器管理
- 章14. 安装指导
- 章15. 在 Windows 上安装客户端
- 章16. 操作系统环境
- 章17. 服务器配置
- 章18. 数据库角色和权限
- 章19. 管理数据库
- 章21. 区域
- 章20. 用户认证
- 章22. 日常数据库维护工作
- 章23. 备份与恢复
- 章24. 高可用性与负载均衡
- 章25. 监控数据库的活动
- 章26. 监控磁盘使用情况
- 章27. 可靠性和预写式日志
- 章28. 回归测试
IV. 客户端接口
- Chapter 28. libpq - C 库
- 章29.
- Chapter 30. ecpg - 在 C 里嵌入 SQL
- Chapter 31. 信息模式
- 31.2. 数据类型
- 31.3. informationschemacatalog_name
- 31.4. applicable_roles
- 31.5. check_constraints
- 31.6. columndomainusage
- 31.7. column_privileges
- 31.8. columnudtusage
- 31.9. columns
- 31.10. constraintcolumnusage
- 31.11. constrainttableusage
- 31.12. datatypeprivileges
- 31.13. domain_constraints
- 31.14. domainudtusage
- 31.15. domains
- 31.16. element_types
- 31.17. enabled_roles
- 31.18. keycolumnusage
- 31.20. referential_constraints
- 31.21. rolecolumngrants
- 31.22. roleroutinegrants
- 31.23. roletablegrants
- 31.24. roleusagegrants
- 31.25. routine_privileges
- 31.26. routines
- 31.27. schemata
- 31.28. sql_features
- 31.29. sqlimplementationinfo
- 31.30. sql_languages
- 31.31. sql_packages
- 31.32. sql_sizing
- 31.33. sqlsizingprofiles
- 31.34. table_constraints
- 31.35. table_privileges
- 31.36. tables
- 31.37. triggers
- 31.38. usage_privileges
- 31.39. viewcolumnusage
- 31.40. viewtableusage
- 31.41. views
V. 服务器端编程
- 章33. 扩展 SQL
- 章34. 触发器
- 章35. 规则系统
- 章36. 过程语言
- 章37. PL/pgSQL - SQL 过程语言
- 章38. PL/Tcl - Tcl 过程语言
- 章39. PL/Perl - Perl 过程语言
- 章40. PL/Python - Python 过程语言
- 章41. 服务器编程接口
VI. 参考手册
- I. SQL 命令
- ABORT
- ALTER AGGREGATE
- ALTER CONVERSION
- ALTER DATABASE
- ALTER DOMAIN
- ALTER FUNCTION
- ALTER GROUP
- ALTER INDEX
- ALTER LANGUAGE
- ALTER OPERATOR
- ALTER OPERATOR CLASS
- ALTER ROLE
- ALTER SCHEMA
- ALTER SEQUENCE
- ALTER TABLE
- ALTER TABLESPACE
- ALTER TRIGGER
- ALTER TYPE
- ALTER USER
- ANALYZE
- BEGIN
- CHECKPOINT
- CLOSE
- CLUSTER
- COMMENT
- COMMIT PREPARED
- COMMIT
- COPY
- CREATE AGGREGATE
- CREATE CAST
- CREATE CONSTRAINT TRIGGER
- CREATE CONVERSION
- CREATE DATABASE
- CREATE DOMAIN
- CREATE FUNCTION
- CREATE GROUP
- CREATE INDEX
- CREATE LANGUAGE
- CREATE OPERATOR CLASS
- CREATE OPERATOR
- CREATE ROLE
- CREATE RULE
- CREATE SCHEMA
- CREATE SEQUENCE
- CREATE TABLE
- CREATE TABLE AS
- CREATE TABLESPACE
- CREATE TRIGGER
- CREATE TYPE
- CREATE USER
- CREATE VIEW
- DEALLOCATE
- DECLARE
- DELETE
- DROP OWNED
- DROP AGGREGATE
- DROP CAST
- DROP CONVERSION
- DROP DATABASE
- DROP DOMAIN
- DROP FUNCTION
- DROP GROUP
- DROP INDEX
- DROP LANGUAGE
- DROP OPERATOR CLASS
- DROP OPERATOR
- DROP ROLE
- DROP RULE
- DROP SCHEMA
- DROP SEQUENCE
- DROP TABLE
- DROP TABLESPACE
- DROP TRIGGER
- DROP TYPE
- DROP USER
- DROP VIEW
- END
- EXECUTE
- EXPLAIN
- FETCH
- GRANT
- INSERT
- LISTEN
- LOAD
- LOCK
- MOVE
- NOTIFY
- PREPARE TRANSACTION
- PREPARE
- REASSIGN OWNED
- REINDEX
- RELEASE SAVEPOINT
- RESET
- REVOKE
- ROLLBACK PREPARED
- ROLLBACK TO SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT
- SELECT INTO
- SET
- SET CONSTRAINTS
- SET ROLE
- SET SESSION AUTHORIZATION
- SET TRANSACTION
- SHOW
- START TRANSACTION
- TRUNCATE
- UNLISTEN
- UPDATE
- VACUUM
- II. PostgreSQL 客户端应用程序
- III. PostgreSQL 服务器应用程序
VII. 内部
- 章42. PostgreSQL 内部概貌
- 章43. 系统表
- 43.1. 概述
- 43.2. pg_aggregate
- 43.3. pg_am
- 43.4. pg_amop
- 43.5. pg_amproc
- 43.6. pg_attrdef
- 43.7. pg_attribute
- 43.8. pg_authid
- 43.9. pgauthmembers
- 43.10. pg_autovacuum
- 43.11. pg_cast
- 43.12. pg_class
- 43.13. pg_constraint
- 43.14. pg_conversion
- 43.15. pg_database
- 43.16. pg_depend
- 43.17. pg_description
- 43.18. pg_index
- 43.19. pg_inherits
- 43.20. pg_language
- 43.21. pg_largeobject
- 43.22. pg_listener
- 43.23. pg_namespace
- 43.24. pg_opclass
- 43.25. pg_operator
- 43.26. pg_pltemplate
- 43.27. pg_proc
- 43.28. pg_rewrite
- 43.29. pg_shdepend
- 43.30. pg_shdescription
- 43.31. pg_statistic
- 43.32. pg_tablespace
- 43.33. pg_trigger
- 43.34. pg_type
- 43.35. 系统视图
- 43.36. pg_cursors
- 43.37. pg_group
- 43.38. pg_indexes
- 43.39. pg_locks
- 43.40. pgpreparedstatements
- 43.41. pgpreparedxacts
- 43.42. pg_roles
- 43.43. pg_rules
- 43.44. pg_settings
- 43.45. pg_shadow
- 43.46. pg_stats
- 43.47. pg_tables
- 43.48. pgtimezoneabbrevs
- 43.49. pgtimezonenames
- 43.50. pg_user
- 43.51. pg_views
- 章44. 前/后端协议
- 章45. PostgreSQL 编码约定
- 章46. 本地语言支持
- 章47. 书写一个过程语言处理器
- 章48. 基因查询优化器
- 章49. 索引访问方法接口定义
- 章50. GiST 索引
- 章51. GIN 索引
- 章52. 数据库物理存储
- 章53. BKI 后端接口
- 章54. 规划器如何使用统计信息
VIII. 附录
ALTER ROLE
名称
ALTER ROLE--修改一个数据库角色语法
ALTER ROLEname
[ [ WITH ]option
[ ... ] ] 这里的option
可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | CONNECTION LIMITconnlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password
' | VALID UNTIL 'timestamp
' ALTER ROLEname
RENAME TOnewname
ALTER ROLEname
SETconfiguration_parameter
{ TO | = } {value
| DEFAULT } ALTER ROLEname
RESETconfiguration_parameter
描述
ALTER ROLE
修改一个数据库角色的属性。
这个命令的第一个变体可以修改很多 CREATE ROLE 里面声明的角色属性,可以参阅相应手册页获取细节。所有可能的属性都有介绍,除了增加和删除成员关系的选项之外(使用 GRANT 和 REVOKE 做这件事)。没有在命令里提到的属性维持它们以前的设置。数据库超级用户可以给任何角色改变任何设置。拥有 CREATEROLE
权限的角色可以修改任意这些设置,但是只能给非超级用户角色设置。普通的角色只能修改它们自己的口令。
第二个变种修改角色的名称。数据库超级用户可以修改任何角色的名称。拥有 CREATEROLE
权限的角色可以给非超级用户进行重命名。当前会话的用户是不能改名的。如果需要这么做,必须以另外一个用户的身份连接。因为 MD5
加密的口令使用角色名字作为加密的盐粒,所以,如果口令是 MD5
加密的,那么给一个用户改名会清空其口令。
第三和第四个变体为特定的配置变量修改一个角色的会话缺省值。在该角色随后开始一个新的会话之后,指定的数值会覆盖 postgresql.conf
里面的或者 postgres
命令行上的参数,而变成会话缺省值。对于没有 LOGIN
权限的角色,会话的缺省值没有什么意义。普通的角色可以改变自己的会话缺省。超级用户可以修改任何人的会话缺省。拥有 CREATEROLE
权限的角色可以给非超级用户修改缺省。有些变量不能用这个方法设置,或者是只能由超级用户来设置。
参数
name
需要修改属性的角色的名称
SUPERUSER
NOSUPERUSER
CREATEDB
NOCREATEDB
CREATEROLE
NOCREATEROLE
CREATEUSER
NOCREATEUSER
INHERIT
NOINHERIT
LOGIN
NOLOGIN
CONNECTION LIMIT
connlimit
PASSWORD
password
ENCRYPTED
UNENCRYPTED
VALID UNTIL
'timestamp
'这些子句修改最初由 CREATE ROLE 设置的属性,参阅该命令获取更多信息。
newname
角色的新名称
configuration_parameter
value
把该角色指定的配置参数缺省值设置为给定值。如果
value
是DEFAULT
或等效的RESET
,则删除特定角色的变量设置,这样该角色将在新的会话里继承系统范围的缺省值。使用RESET ALL
清理所有角色相关的设置。参阅 SET 和章17获取有关允许的参数名字和数值的更多信息。
注意
使用 CREATE ROLE 增加新角色,使用 DROP ROLE 删除旧角色。
ALTER ROLE
不能改变角色的成员关系。可以使用 GRANT 和 REVOKE 做这个事情。
使用这个命令指定一个未加密的密码时必须小心,因为密码将以明文方式传送到服务器,并且可能被客户端命令历史记录或者被服务器日志记录。psql 包含一个可以用来安全修改角色密码的 \password
命令。
也可以把会话缺省与数据库绑定而不是与角色绑定;参阅 ALTER DATABASE 。如果有冲突,那么特定于角色的设置将覆盖特定于数据库的设置。
例子
改变一个角色的口令:
ALTER ROLE davide WITH PASSWORD 'hu8jmn3';
改变口令失效的日期,声明口令应该在 2015 年 5 月 4 日中午失效,时区比 UTC 早一个小时:
ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';
令一个口令永远有效:
ALTER ROLE fred VALID UNTIL 'infinity';
给予一个角色创建其它角色和新数据库的能力:
ALTER ROLE miriam CREATEROLE CREATEDB;
给一个角色设置非缺省的 maintenance_work_mem 参数值:
ALTER ROLE worker_bee SET maintenance_work_mem = 100000;
兼容性
ALTER ROLE
语句是一个 PostgreSQL 扩展。
又见
CREATE ROLE, DROP ROLE, SET如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论