- {name:dbrole_readonly , login:false , comment:role for global read-only access } # production read-only role- {name:dbrole_offline , login:false , comment:role for restricted read-only access (offline instance) } # restricted-read-only role- {name:dbrole_readwrite , login:false , roles:[dbrole_readonly], comment:role for global read-write access } # production read-write role- {name:dbrole_admin , login:false , roles:[pg_monitor, dbrole_readwrite] , comment:role for object creation }# production DDL change role
警告
不建议普通用户修改默认角色的名称
默认用户
Pigsty带有四个默认用户:
超级用户(postgres),数据库的拥有者与创建者,与操作系统用户一致
复制用户(replicator),用于主从复制的系统用户
监控用户(dbuser_monitor),用于监控数据库与连接池指标的用户
管理员(dbuser_dba),执行日常管理操作与数据库变更的管理员用户
其定义如下所示:
- {name:postgres , superuser:true , comment:system superuser } # system dbsu, name is designated by `pg_dbsu`- {name:dbuser_dba , superuser:true , roles:[dbrole_admin] , comment:system admin user } # admin dbsu, name is designated by `pg_admin_username`- {name:replicator , replication:true , bypassrls:true , roles:[pg_monitor, dbrole_readonly] , comment:system replicator } # replicator- {name:dbuser_monitor , roles:[pg_monitor, dbrole_readonly] , comment:system monitor user , parameters:{log_min_duration_statement:1000}}# monitor user
在Pigsty中,4个默认的重要用户的用户名和密码是由独立参数控制与管理的:
pg_dbsu:postgres # os user for database# - system roles - #pg_replication_username:replicator # system replication userpg_replication_password:DBUser.Replicator # system replication passwordpg_monitor_username:dbuser_monitor # system monitor userpg_monitor_password:DBUser.Monitor # system monitor passwordpg_admin_username:dbuser_dba # system admin userpg_admin_password:DBUser.DBA # system admin password
#==============================================================## Default HBA#==============================================================## allow local su with ident"local all postgres identlocal replication postgres ident# allow local user password accesslocal all all md5# allow local/intranet replication with passwordlocal replication replicator md5host replication replicator 127.0.0.1/32 md5host all replicator 10.0.0.0/8 md5host all replicator 172.16.0.0/12 md5host all replicator 192.168.0.0/16 md5host replication replicator 10.0.0.0/8 md5host replication replicator 172.16.0.0/12 md5host replication replicator 192.168.0.0/16 md5# allow local role monitor with passwordlocal all dbuser_monitor md5host all dbuser_monitor 127.0.0.1/32 md5#==============================================================## Extra HBA#==============================================================## add extra hba rules here#==============================================================## primary HBA#==============================================================##==============================================================## special HBA for instance marked with 'pg_offline_query = true'#==============================================================##==============================================================## Common HBA#==============================================================## allow meta node password accesshost all all 10.10.10.10/32 md5# allow intranet admin password accesshost all +dbrole_admin 10.0.0.0/8 md5host all +dbrole_admin 172.16.0.0/12 md5host all +dbrole_admin 192.168.0.0/16 md5# allow intranet password accesshost all all 10.0.0.0/8 md5host all all 172.16.0.0/12 md5host all all 192.168.0.0/16 md5# allow local read/write (local production user via pgbouncer)local all +dbrole_readonly md5host all +dbrole_readonly 127.0.0.1/32 md5#==============================================================## Ad Hoc HBA#===========================================================
pgbouncer_hba_rules: # pgbouncer host-based authentication rules - title: local password access
role: common
rules:
- local all all md5
- host all all 127.0.0.1/32 md5
- title: intranet password access
role: common
rules:
- host all all 10.0.0.0/8 md5
- host all all 172.16.0.0/12 md5
- host all all 192.168.0.0/16 md5
pg_databases:# define business databases on this cluster, array of database definition# define the default `meta` database- name:meta # required, `name` is the only mandatory field of a database definitionbaseline:cmdb.sql # optional, database sql baseline path, (relative path among ansible search path, e.g files/)owner:postgres # optional, database owner, postgres by defaulttemplate:template1 # optional, which template to use, template1 by defaultencoding:UTF8 # optional, database encoding, UTF8 by default. (MUST same as template database)locale:C # optional, database locale, C by default. (MUST same as template database)lc_collate:C # optional, database collate, C by default. (MUST same as template database)lc_ctype:C # optional, database ctype, C by default. (MUST same as template database)tablespace:pg_default # optional, default tablespace, 'pg_default' by default.allowconn:true# optional, allow connection, true by default. false will disable connect at allrevokeconn:false# optional, revoke public connection privilege. false by default. (leave connect with grant option to owner)pgbouncer:true# optional, add this database to pgbouncer database list? true by defaultcomment:pigsty meta database # optional, comment string for this databaseconnlimit:-1# optional, database connection limit, default -1 disable limitschemas:[pigsty] # optional, additional schemas to be created, array of schema namesextensions:# optional, additional extensions to be installed: array of schema definition `{name,schema}`- {name:adminpack, schema:pg_catalog} # install adminpack to pg_catalog and install postgis to public- {name:postgis, schema:public} # if schema is omitted, extension will be installed according to search_path.