0

在 PostgreSQL 的最新版本中,用户被实现为可以登录的角色。这在 RBAC 实现中是否常见,即用户只是另一个能够登录(或类似)的角色?到目前为止,我读过的一些内容并没有暗示……但也许我读错了,或者只是没有读到正确的东西。

4

1 回答 1

1

特别是我在您的问题中理解的是 RBAC 和 postgresql 中的 create user 命令之间的区别和关系,您可能知道 PostgreSQL 使用角色的概念管理数据库访问权限。此角色可以是数据库用户,也可以是一组数据库用户,具体取决于角色的设置方式。

正如这里所提到的,角色可以拥有数据库对象(例如,表),并且可以将这些对象的权限分配给其他角色,以控制谁可以访问哪些对象。

此外,需要强调的是 CREATE USER 是 CREATE ROLE 的别名,有关详细信息,请参阅。唯一的区别是,当命令拼写为 CREATE USER 时,默认假定为 LOGIN,而当命令拼写为 CREATE ROLE 时假定为 NOLOGIN。(在 postgresql 手册中提到)

角色的概念包含“用户”和“组”的概念。在 8.1 之前的 PostgreSQL 版本中,用户和组是不同种类的实体,但现在只有角色。任何角色都可以充当用户、组或两者兼而有之。

RBAC是一种访问控制,可以与数据库建立关系,但是它用于PC或大型网络中的任何“东西”访问,类似于其他访问控制(MAC DAC),数据库管理系统,在其访问控制机制,也可以应用其他访问控制机制。在这种情况下,对象是表、视图、过程等。您可以从wikipedia阅读详细信息

最后,所有关系型 DBMS 都提供了某种旨在最大限度减少威胁的内在安全机制。如果它适合您的数据库应用程序,您可以从 CREATE USER 或 CREATE ROLE 命令中受益,以降低安全风险,这就是这些命令存在的原因。

于 2010-08-23T00:18:28.570 回答