首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建角色或创建用户

创建角色或创建用户
EN

Database Administration用户
提问于 2019-02-23 17:13:09
回答 4查看 2.3K关注 0票数 1
代码语言:javascript
复制
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年)

代码语言:javascript
复制
CREATE user crm_usr identified by tiger235;

CREATE DATABASE crm_db OWNER crm_usr;
EN

回答 4

Database Administration用户

发布于 2019-02-23 18:30:51

注意,在PostgreSQL中,用户和角色是相同的。区别在于用户可以登录,角色不能登录。因此,要回答您的问题,您需要决定是否希望crm_usr能够登录。

我尝试采用的方法是有两个(或多个)角色--一个用于拥有(即xyz_owner)对象,一个或多个(xyz_user)用于执行DML (选择、插入、更新等)。在那些物体上。xyz_user被授予数据库的实际用户,而xyz_owner没有被授予任何人。

票数 4
EN

Database Administration用户

发布于 2019-02-24 08:44:42

在Postgres中,CREATE USER x只是CREATE ROLE x LOGIN句法糖。你想要的命令就像

代码语言:javascript
复制
   CREATE USER crm_usr PASSWORD 'tiger235';
   CREATE DATABASE crd_db OWNER crm_user;
票数 1
EN

Database Administration用户

发布于 2019-02-24 14:37:29

在PostgreSQL中,建议使用相同的用户名和架构名称。

因为当您使用用户X登录时,它直接在模式X中搜索对象,否则如果您想看到模式X用户的模式Y对象,就必须显式地设置search_path。

因此,在使用您的需求创建模式或用户之前,请确保您了解此概念。

回到你的问题上,用户是拥有某种东西的人,角色是用户组合在一起的东西,或者仅仅是一个角色,取决于它的配置方式。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/230555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档