一、 角色(role)和用户(user)
   1. role
      postgres=# create role kanon password 'kanon';         #使用role创建的用户默认不允许登录
      postgres=# alter role kanon login;                     #修改kanon可以登录
   2. user
      postgres=# create user kanon2 password 'kanon2';       #使用user创建的用户默认可以登录

二、数据库(database)和模式(schema)的关系
   模式(schema)是对数据库(database)的逻辑分割
   
   1. 在数据库初始化时,就默认为数据库创建了一个模式--public,这也是数据库的默认模式,所有为此数据库
      创建的对象(表,函数,视图,索引,序列等)都是常见在这个模式中的。
   2. 查看模式: \dn  创建模式: create schema kanon owner kanon
      创建一张表指定模式: create table kanon.test (id integer not null);
    
   3. 官方建议:当管理员创建一个数据库后,应该为所有可以连接到该数据库的用户分别创建一个与用户名相同
      的模式,然后将search_path设置为“$user”,这样当某个用户连接上来以后,都会默认定位到同名模式中。
      
三、 数据库(database)和表空间的关系
   1. 创建一个表时,默认的表空间是--pg_default,这是因为postgres中,数据库的创建是通过克隆数据库模板
      来实现的,create database dbname并没有指明数据库模板,所以系统将默认克隆template1数据库,得到
      新的数据库dbname,而template1数据库的默认表空间是pg_default,这个表空间也是数据库初始化时候创建
      的,所以template1中的对象被同步克隆到新的数据库中,完整创建数据库的语法是这样的:create database
      dbname owner kanon template template1 tablespace tablespacename
   2. 创建一个表空间:create tablespace tskanon owner kanon location /tmp/data/tskanon
      表空间是一个目录,里面存储它所包含的数据库各种物理文件。