当前位置: 首页 > 知识库问答 >
问题:

用户和角色之间的区别是什么?

时才俊
2023-03-14

我知道还有其他类似的线程,但我不确定它们是否与Postgres相关。

我正在阅读PostgreSQL文档,内容如下:

注意:如第20章所述,PostgreSQL实际上在“角色”方面进行了权限管理。在本章中,我们始终使用数据库用户来表示“具有 LOGIN 特权的角色”。

这是否意味着角色是数据库用户?或者角色和用户之间有区别吗?用户是否有可能不具有完全权限,而角色是始终具有完全权限的用户?

共有3个答案

杨鸿畅
2023-03-14

https://AWS . Amazon . com/blogs/database/managing-PostgreSQL-Users-and-roles/#:~:text =用户、组和角色,默认登录。

用户、组和角色用户、组和角色在PostgreSQL中是一样的,唯一的区别是用户默认情况下有权登录。CREATE USER和CREATE GROUP语句实际上是CREATE ROLE语句的别名。

在此处输入图像描述

在Oracle等其他关系数据库管理系统(RDBMS)中,用户和角色是两个不同的实体。在Oracle中,角色不能用于登录数据库。角色仅用于对授权和其他角色进行分组。然后,可以将该角色分配给一个或多个用户,授予他们所有权限。有关如何将用户、角色和授权从Oracle迁移到PostgreSQL的更多详细信息,请参阅AWS博客文章使用SQL将用户、角色和授权从Oracle映射到PostgreSQL。

邬宜然
2023-03-14

我发现这个链接非常有用。最终目标是某些用户/角色可以读取写入,某些规则/用户只能读取。

韦宣
2023-03-14

以前版本的Postgres和其他一些数据库系统有单独的概念,即“组”(被授予访问数据库对象的权限)和“用户”(可以登录,并且是一个或多个组的成员)。

在Postgres的现代版本中,这两个概念已经合并:“角色”可以登录,可以从其他角色“继承”(如用户是组的成员,或组是另一个组的成员),以及访问数据库对象

为了方便起见,许多工具和手册将任何具有登录权限的用户称为“用户”或“登录角色”,将任何没有登录权限的用户称为“组”或“组角色”,因为大致保持这种结构是有用的和常见的做法。这完全是术语惯例,要理解权限,您只需要理解创建角色和授予他们访问权限时可用的选项。

同样,纯粹为了方便起见,Postgres仍然接受使用旧术语的命令,例如CREATE USERCREATE GROUP.的别名。如果您编写CREATE USER,则默认情况下,LOGIN

 类似资料:
  • 对于ASP.NET MVC应用程序,新的Azure Web站点和传统的Azure Web角色之间有什么实质性的区别?为什么我会选择“Web站点”而不是“Web角色”,或者反之亦然? 让我们假设我在两种情况下都需要相同的容量(例如2个小实例)。价格似乎是可比的,但事实上,有33%的临时折扣为网站,而他们是在预览期。 有没有什么事情我可以做的“网站”是困难或不可能与一个网络角色?例如,使用“web站点

  • 我是博士后新手,有一些问题。我在我的linux系统上安装了postgresql,它在系统上创建了一个用户postgres,我在pgadmin中也有一个postgres用户,他们是同一个用户吗? 我对jboss有问题,连接数据源会导致密码验证问题。 pg_hba。形态: 例外情况: 由以下原因引起:org.postgresql.util.PSQL异常:FATAL:org.postgresql.cor

  • 问题内容: Spring Security中有一些概念和实现,例如用于获得 授权 来授权/控制访问权限的接口。 我希望对允许的操作(例如 createSubUsers 或 deleteAccounts) 进行允许,这些操作将允许 管理员 (具有role )进行。 在网上看到的教程/演示让我感到困惑。我尝试将我阅读的内容联系起来,但我认为我们可以将两者互换。 我看到正在消耗字符串吗?我肯定在理解上做

  • 我一直在看视频和阅读文章,但这篇具体的文章让我很困惑,文章开头写道 Angular中的应用程序遵循模块化结构。Angular应用程序将包含许多模块,每个模块都专用于单一用途。通常,模块是一组内聚的代码,与其他模块集成以运行Angular应用程序。 模块从其代码中导出一些类、函数和值。组件是Angular的基本块,多个组件将构成您的应用程序。 一个模块可以是另一个模块的库。例如,作为主角度库模块的

  • 在Java 7之前,JVM内存中有一个名为PermGen的区域,JVM以前在这里保存它的类。在Java 8中,它被移除并被称为元空间的区域所取代。 PermGen和Metaspace之间最重要的区别是什么? 我知道的唯一区别是,并且忽略了VM参数。

  • 和之间有什么区别? 是什么原因导致他们被扔?如何解决这些问题? 在修改现有代码以包含新的jar文件时,我经常会遇到这些可抛物。我在通过WebStart发布的一个Java应用程序的客户端和服务器端都碰到了它们。 我遇到的可能原因是: 代码客户端的中未包含的包 我们正在使用的新JAR缺少运行时类路径 版本与以前的JAR冲突 当我今天遇到这些问题时,我会采取跟踪和错误的方法来使事情正常工作。我需要更多的