sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cuál es la diferencia entre un usuario y un rol?

Las versiones anteriores de Postgres y algunos otros sistemas de base de datos tienen conceptos separados de "grupos" (a los que se otorga acceso a los objetos de la base de datos) y "usuarios" (que pueden iniciar sesión y son miembros de uno o más grupos).

En las versiones modernas de Postgres, los dos conceptos se han fusionado:un "rol" puede tener la capacidad de iniciar sesión, la capacidad de "heredar" de otros roles (como un usuario que es miembro de un grupo o un grupo que es miembro de otro grupo) y acceso a los objetos de la base de datos.

Para mayor comodidad, muchas herramientas y manuales se refieren a cualquier usuario con permiso de inicio de sesión como "usuario" o "función de inicio de sesión" y a cualquiera que no lo tenga como "grupo" o "función de grupo", ya que es una práctica útil y común limitarse aproximadamente a esa estructura Esto es completamente una convención de terminología, y para comprender los permisos, solo necesita comprender las opciones disponibles cuando creando roles y otorgándoles acceso .

Nuevamente, por conveniencia, Postgres aún acepta comandos que utilizan la terminología anterior, como CREATE USER y CREATE GROUP ambos son alias para CREATE ROLE . Si escribes CREATE USER , el LOGIN el permiso se agregará al nuevo rol de forma predeterminada, para emular el comportamiento anterior cuando era un comando separado.