看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢? 经过中午的一个小实验,我逐渐理清了个中来龙去脉。下面我来还原我的试验,并循序讲清其中关系。 首先,实验出角色与用户的关系
看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢?
经过中午的一个小实验,我逐渐理清了个中来龙去脉。下面我来还原我的试验,并循序讲清其中关系。
首先,实验出角色与用户的关系在PostgreSQL中,存在两个容易混淆的概念:角色/用户。之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这是完全相同的两个对象。唯一的区别是在创建的时候:1.我用下面的psql创建了角色kanon:
CREATE ROLE kanon PASSWORD 'kanon';
接着我使用新创建的角色kanon登录,PostgreSQL给出拒绝信息:
FATAL: role 'kanon' is not permitted to log in.
说明该角色没有登录权限,系统拒绝其登录。
2.我又使用下面的psql创建了用户kanon2:
CREATE USER kanon PASSWORD 'kanon2';
接着我使用kanon2登录,登录成功。
难道这两者有区别吗ÿ