在PostgreSQL users are implemented as roles that can login的最新版本中。这在RBAC实现中是否常见,用户只是具有登录(或类似)功能的另一个角色?到目前为止,我read的一些内容并没有暗示......但也许我误读了或者没有读过正确的东西。
答案 0 :(得分:1)
特别是我在你的问题中理解的是在postgresql中RBAC和创建用户命令之间的差异和关系,你可能知道PostgreSQL使用角色的概念来管理数据库访问权限。此角色可以是数据库用户,也可以是一组数据库用户,具体取决于角色的设置方式。
如引用here角色可以拥有数据库对象(例如,表),并可以将这些对象的权限分配给其他角色,以控制谁有权访问哪些对象。
此外,需要强调的是,CREATE USER是CREATE ROLE的别名,可以查看更多信息。唯一的区别是当命令拼写为CREATE USER时,默认情况下假定为LOGIN,而当命令拼写为CREATE ROLE时则假定为NOLOGIN。 (在postgresql manuel中提到)
角色的概念包含“用户”和“群组”的概念。在8.1之前的PostgreSQL版本中,用户和组是不同类型的实体,但现在只有角色。任何角色都可以充当用户,组或两者。
RBAC是一种访问控制,可以与数据库建立关系,但它可用于PC中的任何类型的“东西”访问或类似于其他访问控制(MAC DAC)的大型网络,数据库管理系统,在其访问控制机制中,还可以应用其他访问控制机制。在这种情况下,对象是表,视图,过程等。您可以从wikipedia
中读取详细信息最后,所有关系型DBMS都提供了一些内部安全机制,旨在最大限度地减少威胁。如果它适合您的数据库应用程序,您可以从CREATE USER或CREATE ROLE命令中受益,以降低安全风险,这就是存在这些命令的原因。