

Part 10:PG数据库管理
| 内容1 | PostgreSQL数据库结构 |
| 内容2 | PostgreSQL数据库级权限管理 |
| 内容3 | PG数据库级环境参数设置 |
| 内容4 | PostgreSQL数据库级属性修改 |
10.1、数据库结构

PostgreSQL数据库结构
10.2、数据库权限
CREATE:可以在指定数据库创建schema的权限
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }ON DATABASE 数据库名称 [, ...]TO role_specification [, ...] [ WITH GRANT OPTION ]
--授权用户连接数据库的权限grant connect on database db_name to user_name;--撤销用户连接数据库的权限revoke connect on database db_name from public;revoke connect on database db_name from user_name;--查看哪些用户有某个数据库的connect权限select datname,datacl from pg_database where datname='db_name';
10.3、数据库环境设置
PostgreSQL参数设置分为实例级、数据库级、用户级和会话级,而有些参数可以在所有级别中设置,优先级顺序为会话级>用户级>数据库级>实例级。
ALTER DATABASE 名称 SET 配置参数 { TO | = } { 值 | DEFAULT }ALTER DATABASE 名称 SET 配置参数 FROM CURRENTALTER DATABASE 名称 RESET 配置参数ALTER DATABASE 名称 RESET ALL
• 配置示例(一):
--设置数据库搜索路径:alter database postgresset search_path to "$user", public, schema_name;--配置连接某个库时可使用的工作内存alter database postgres set work_mem = '8MB';--配置连接某个库时可使用的维护内存alter database postgres set maintenance_work_mem TO '256MB';
配置示例(二):
--配置连接某个库后使用的时区alter database postgres set TimeZone to cet;alter database postgres set DateStyle to SQL, DMY;(重新登录生效)--配置连接某个库后执行语句最多时长(执行1秒超时)alter database postgres set statement_timeout =1000;--配置连接某个库后默认的客户端编码,配置客户端编码为gbk,适用于数据库编码为utf8,应用程序编码为gbk的应用alter database postgres set client_encoding to gbk;
配置示例(三):
--配置某个库使用日志记录级别(设置后,对这个数据库的访问不记录日志)alter database postgres set log_statement=none;--配置连接某个库后的wal日志写盘级别(设置后,该库的更新操作只要求本地提交)alter database postgres set synchronous_commit to local;--配置连接某个库后禁用某个规划器(禁用indexonlyscan扫描)alter database postgres set enable_indexonlyscan to off;
配置示例(四):
--配置连接某个库后执行出错时中断连接(对新会话生效)alter database postgres set exit_on_error to on;--重新连接后select pg_backend_pid();--执行错误会导致连接中断select * from d1;
配置示例(五):
--查看所有个性化配置\drds--查询数据库的连接数限制只能查看数据字典表select datname,datconnlimit from pg_database--设置某个个性化设置为默认值ALTER DATABASE postgres reset exit_on_error;--设置所有个性化设置为默认值ALTER DATABASE postgres reset ALL;
10.4、数据库属性修改
ALTER DATABASE 名称 RENAME TO 新的名称ALTER DATABASE 名称 OWNER TO { 新的属主 | CURRENT_USER | SESSION_USER }ALTER DATABASE 名称 SET TABLESPACE 新的表空间
示例:
--修改数据库名字ALTER DATABASE newdb2 RENAME TO newdb3;--修改数据库属主ALTER DATABASE newdb3 OWNER TO u1;--修改新表空间的名字ALTER DATABASE newdb3 SET TABLESPACE new_tbl;


相关阅读:
蓝蓝的天
-->> 联系客服,进群或领取文档资料
文章转载自北京CUUG,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




