PostgreSQL version : 11.2
OS platform : RHEL 7.6我是PostgreSQL的新手。我有一个客户关系管理应用程序,我想将其数据存储在我的11.2 PostgreSQL数据库中。
数据库名为:crm_db
架构名称将是:crm_app
我希望crm_app模式中的所有模式对象都由名为crm_usr的数据库用户拥有。
我是否可以像下面这样使用CREATE USER命令创建一个DB用户,或者应该创建一个名为crm_usr的角色?在11.2中有什么推荐的方法来做到这一点(在发布这篇文章时的最新版本,即23-2月-2019年)
CREATE user crm_usr identified by tiger235;
CREATE DATABASE crm_db OWNER crm_usr;发布于 2019-02-23 18:30:51
注意,在PostgreSQL中,用户和角色是相同的。区别在于用户可以登录,角色不能登录。因此,要回答您的问题,您需要决定是否希望crm_usr能够登录。
我尝试采用的方法是有两个(或多个)角色--一个用于拥有(即xyz_owner)对象,一个或多个(xyz_user)用于执行DML (选择、插入、更新等)。在那些物体上。xyz_user被授予数据库的实际用户,而xyz_owner没有被授予任何人。
发布于 2019-02-24 08:44:42
发布于 2019-02-24 14:37:29
在PostgreSQL中,建议使用相同的用户名和架构名称。
因为当您使用用户X登录时,它直接在模式X中搜索对象,否则如果您想看到模式X用户的模式Y对象,就必须显式地设置search_path。
因此,在使用您的需求创建模式或用户之前,请确保您了解此概念。
回到你的问题上,用户是拥有某种东西的人,角色是用户组合在一起的东西,或者仅仅是一个角色,取决于它的配置方式。
https://dba.stackexchange.com/questions/230555
复制相似问题