postgres数据库建库、修改owner
时间:2019-10-15
本文章向大家介绍postgres数据库建库、修改owner,主要包括postgres数据库建库、修改owner使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、创建用户角色
create user XXX with password 'XXXXXX'; --或者 create role XXX with password 'XXXXX' login;
注意:使用create role时,需要携带 login参数,否则将无法登录,如果忘记可使用命令修改:
alter role XXX login;
2、创建数据库:
1 CREATE DATABASE yysg 2 WITH OWNER = yysg 3 ENCODING = 'UTF8' 4 TABLESPACE = pg_default 5 LC_COLLATE = 'en_US.UTF-8' 6 LC_CTYPE = 'en_US.UTF-8' 7 CONNECTION LIMIT = -1 8 9 TEMPLATE template0; 10 11 GRANT CONNECT, TEMPORARY ON DATABASE yysg TO public; 12 GRANT ALL ON DATABASE yysg TO yysg; 13 GRANT ALL ON DATABASE yysg TO postgres; 14 15 COMMENT ON DATABASE yysg 16 IS 'XXX database name';
注意:如果出现如下错误,请加上: TEMPLATE template0;
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF8) HINT: Use the same collation as in the template database, or use template0 as template.
3、修改整个schema所有表owner
1 DO $$ 2 DECLARE 3 r record; 4 i int; 5 v_schema text[] := '{public}'; 6 v_new_owner varchar := 'yysg'; 7 BEGIN 8 FOR r IN 9 SELECT 'ALTER TABLE "' || table_schema || '"."' || table_name || '" OWNER TO ' || v_new_owner || ';' AS a FROM information_schema.tables WHERE table_schema = ANY (v_schema) 10 UNION ALL 11 SELECT 'ALTER TABLE "' || sequence_schema || '"."' || sequence_name || '" OWNER TO ' || v_new_owner || ';' AS a FROM information_schema.sequences WHERE sequence_schema = ANY (v_schema) 12 UNION ALL 13 SELECT 'ALTER TABLE "' || table_schema || '"."' || table_name || '" OWNER TO ' || v_new_owner || ';' AS a FROM information_schema.views WHERE table_schema = ANY (v_schema) 14 UNION ALL 15 SELECT 'ALTER FUNCTION "' || nsp.nspname || '"."' || p.proname || '"(' || pg_get_function_identity_arguments(p.oid) || ') OWNER TO ' || v_new_owner || ';' AS a FROM pg_proc p JOIN pg_namespace nsp ON p.pronamespace = nsp.oid WHERE nsp.nspname = ANY (v_schema) 16 UNION ALL 17 SELECT 'ALTER DATABASE "' || current_database() || '" OWNER TO ' || v_new_owner 18 LOOP 19 EXECUTE r.a; 20 END LOOP; 21 FOR i IN array_lower(v_schema, 1)..array_upper(v_schema, 1) 22 LOOP 23 EXECUTE 'ALTER SCHEMA "' || v_schema[i] || '" OWNER TO ' || v_new_owner; 24 END LOOP; 25 END 26 $$;
原文地址:https://www.cnblogs.com/htlee/p/11677398.html
- 项目中对图片的缩放和水印效果
- 照虎画猫写自己的Spring——自定义注解
- 数据分析进阶课程笔记(六)
- 微信发布重磅更新!上线小游戏,小程序间可快速切换
- 鼠标点击层以外的地方层隐藏
- WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
- WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
- 解决文本框在updatepanel中得到焦点,输入法不能切换到中文的问题
- 得到真实外网IP、IP所在国家、省份、地区
- 机器学习在智能制造中的应用!
- sql2008 附加数据库时 错误5123
- Logistic Regression Models分析交互式问答译
- 照虎画猫写自己的Spring——依赖注入
- Logistic Regression Models分析交互式问答译
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于CDH(Cloudera Distribution Hadoop)的大数据平台搭建
- troubleshoot之:用control+break解决线程死锁问题
- Docker 三剑客之docker-compose
- 腾讯云 Severless-Express 项目开发和灰度发布最佳实践
- 在Docker中使用Redis
- 基于实际业务场景下的Flume部署
- troubleshoot之:使用JFR解决内存泄露
- 一个ABAP和JavaScript这两种编程语言的横向比较
- WebRTC & Android 开发学习环境搭建~
- word模板和XML数据源是如何合并生成最后的word文档的详细过程
- Angular路由跳转时,如何传递信息
- Angular里的购物车页面实现
- CentOS7部署WeADMIN监控主机交换机和URL(无坑版)
- JsonPath实践(一)
- 开源测试服务