pg数据库的角色、模式、表空间
1. 角色(role)与用户(user):对于PostgreSQL来说,这是完全相同的两个对象。
唯一的区别是在创建的时候:ROLE不具有缺省的LOGIN权限。
CREATE ROLE kanon PASSWORD 'kanon' LOGIN; ---等同于 CREATE USER kanon PASSWORD 'kanon';
2. 数据库是被模式(schema)切分的,一个数据库至少有一个模式,所有数据库内部的对象(object)是被创建于模式的。默认public
3. 表空间是一个存储区域,在一个表空间中可以存储多个数据库。默认为pg_default
一个数据库并不直接存储表结构等对象的,而是在数据库中逻辑创建了至少一个模式,在模式中创建了表等对象。
通过将不同的模式指派给不同的角色,可以实现权限分离;又可以通过授权,实现模式间对象的共享,并且public模式可以存储大家都需要访问的对象。