前置

sudo su - postgres // 切换到postgres用户
1、PostgreSQL会在安装阶段默认创建一个超级用户角色和一个database,均是postgres,
a、修改PostgreSQL数据库默认用户postgres的密码
sudo  passwd -d postgres //删除用户postgres的密码
sudo -u postgres passwd //设置用户postgres的密码
// 系统提示输入新的密码
New password:
Retype new password:
passwd: password updated successfully

PG中可以采用分库的方式,即不同的模块创建不同的库;也可以使用同一个库下创建多个SCHEMA的方式;但一个数据连接只能访问一个库,不能跨库访问,即不同数据库之间不能关联查询,参考:
https://www.postgresql.org/docs/9.6/static/ddl-schemas.html
       A PostgreSQL database cluster contains one or more named databases. Users and groups of users are shared across the entire cluster, but no other data is shared across databases. Any given client connection to the server can access only the data in a single database, the one specified in the connection request.
      建议采用同一个库下创建不同SCHEMA的方式。

表空间

建表时,可以指定该表存放在哪个表空间上, 如:create table tbl(id int, name text) tablespace mytablespace
如果不指定,创建在默认的表空间上;
PG中可以为某个库设置默认表空间,也可以为某个用户设置默认表空间;
如:ALTER USER mydb_role SET default_tablespace='mytablespace'

注意:

  • PostgreSQL中创建表空间时,需要指定的是路径,不是文件,且不需要设置表空间的最大大小(Oracle需要根据表空间的最大大小计算需要生成多少个最大4G的数据文件)

PG中创建表空间的方式如:
          mkdir /usr/local/pgdata
          chown postgres:postgres /usr/local/pgdata/
          create tablespace tbs_test owner postgres location '/usr/local/pgdata';

  • 数据库中不建议使用双引号,最好还是在建表和查询时都不要使用双引号,不推荐在DDL里用双引号的方式创建区分大小写的对象。默认会把不带双引号的表名转成小写表名去进行操作。

角色

// CREATE ROLE 角色术语来表示用户账户的概念, CREATE USER (可登录角色)和 CREATE GROUP(组角色)不建议使用。
CREATE ROLE mydb_admin login password 'abc123';
drop DATABASE if exists mydb;
CREATE DATEBASE mydb WITH owner = mydb_admin; 
// 这样就可以用mydb_admin登录创建schema和表等,否则如下
drop schema if exists mydb_schema cascade;
drop tablespace if exists mydb_dbname;
drop user if exists mydb_role;
--user
CREATE USER mydb_role WITH
    LOGIN
    NOSUPERUSER
    CREATEDB
    NOCREATEROLE
    INHERIT
    REPLICATION
    CONNECTION LIMIT -1
    PASSWORD '%$MY-PWD$%';
--create tablespace
CREATE TABLESPACE mydb_dbname
OWNER mydb_role
LOCATION mydb_dbpath;
--default_tablespace
ALTER USER mydb_role SET default_tablespace='mydb_dbname';
--schema
CREATE SCHEMA mydb_schema AUTHORIZATION mydb_role;
--default schema
ALTER USER mydb_role SET search_path=mydb_schema;
GRANT USAGE ON SCHEMA mydb_schema TO PUBLIC;
ALTER DEFAULT PRIVILEGES for user mydb_role in schema mydb_schema 
GRANT SELECT ON TABLES TO public;

SCHEMA

CREATE SCHEMA %$MY-SCHEMA$% AUTHORIZATION %$MY-USER$%;
         也可以省略schema_name,如:
                CREATE SCHEMA  AUTHORIZATION %$MY-USER$%;

省略schema_name的情况下,schema_name和user相同,且通过该user连接上来时,默认就在该schema下,参考:
https://www.postgresql.org/docs/9.6/static/ddl-schemas.html
You can even omit the schema name, in which case the schema name will be the same as the user name.
Recall that the default search path starts with $user, which resolves to the user name. Therefore, if each user has a separate schema, they access their own schemas by default.

后置

MARK: 红色部分很重要。

PostgreSQL创建库、表空间、角色、SCHEMA相关推荐

  1. oracle sqlplus建用户,Oracle用SQL Plus创建数据库表空间和用户

    1. 在电脑左下角点击"开始",然后输入"sql plus",选择运行sql plus程序(登录身份:指登录时的Role指定,oracle11g中分SYSDBA ...

  2. Oracle的用户密码忘了 Oracle用SQL Plus创建数据库表空间

    1. (1)在cmd页面中运行"sqlplus"命令,进入sqlplus环境. (2)在输入用户名中运行"/as sysdba"命令,以操作系统权限认证的ora ...

  3. 创建orcl表空间和用户并给用户授权

    创建orcl表空间和用户并给用户授权 创建表空间 create tablespace biaokongjian1 datafile 'd:\bkj\biaokongjian1.dbf' size 10 ...

  4. oracle 创建空文件系统,六分钟学会创建Oracle表空间的实现步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

  5. 六分钟学会创建Oracle表空间的步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

  6. mysql创建数据库时候同时创建表空间_MySQL 创建InnoDB表空间_编程学问网

    15.2.5. 创建InnoDB表空间 假设你已经安装了MySQL,并且已经编辑了选项文件,使得它包含必要的InnoDB配置参数.在启动MySQL之前,你应该验证你为InnoDB数据文件和日志文件指定 ...

  7. oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

    oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等 1. [启动停止服务] //启动停止监听  www.2cto.com lsnrctl start; lsnrc ...

  8. linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)

    第一次接触到12C CDB和PDB数据库,且客户提供的是ORACLE一体机,只有访问权,费劲周折,今记录12C创建默认路径表空间语句和用户 --创建默认表空间: create tablespace t ...

  9. oracle 创建用户表空间及赋权

    最近在使用数据库经常创建用户表空间 ,再次记录一下 /*第一步:创建数据表空间  */ create tablespace **** logging datafile '/u02/oradata/or ...

  10. oracle12c创建pdb用户6,ORACLE12C PDB创建默认表空间和用户语句

    --创建默认表空间: create tablespace tablesapce_name datafile size 500M   autoextend on next 100M; --创建用户空间: ...

最新文章

  1. NHibenate 一些自带增删改查
  2. WebClient UI删除搜索条件的后台处理,以及max hit的处理逻辑
  3. 命令执行——系统命令执行(三)
  4. 又翻车?苹果被揪出夸大iPhone续航时间:iPhone XR虚标51%
  5. 【SQL】substr截取结果和想象中有差异?
  6. 用Python在图片上添加注释信息
  7. java aspect编译,Java-AspectJ无法编译
  8. 浏览器主页被hao123、360导航之类的流氓网址劫持解决方法
  9. 随机存储器(RAM),只读存储器(ROM),高速缓存(CACHE),内存,硬盘,CPU
  10. 优达笔记-安然数据分析 异常值处理
  11. 首个完全实用异步共识算法提出,我国区块链核心算法取得重大突破 | 产业区块链发展周报...
  12. 数学分析-换底公式证明
  13. 瑞芯微RK3328_Demo(1)原理图参考
  14. linux 使用samba共享文件夹
  15. 公有云 私有云及架构
  16. 深度学习领域引用量最多的前20篇论文简介
  17. python导出结果_Python连接Oracle数据查询导出结果
  18. mastercam2017后处理升级_如何升级Mastercam 9.1版后处理?
  19. MogaFX—汇率能充分反映货币压力吗?
  20. Android UI组件,大专生三面蚂蚁金服

热门文章

  1. 计算机四级理论知识试卷答案,计算机程序设计员四级理论知识试卷
  2. Android延时执行方法
  3. matlab 花体字母,LaTex
  4. 应用实例:照片识别 机器学习基础(10)
  5. socket pipe
  6. CGAL-Triangulation中的单元和面的关系
  7. php絮凝剂是什么_常见的污水处理絮凝剂有哪些
  8. 移动端网页特效(二)
  9. 20201222 Python基本数据类型
  10. volatile的变量学习