Roles PostgreSQL versus usuarios, otorgan permisos


27

Actualmente estoy aprendiendo las diferencias entre PostgreSQL y MySQL, ya que tengo un nuevo proyecto y también tengo la intención de migrar mi software existente de MySQL a PostgreSQL. De hecho, comencé a crear una tabla HTML con una comparación de comandos (para usuarios / bases de datos / símbolo del sistema, etc.) entre los dos. Después de leer una respuesta aquí, he notado que roleparece usarse como grupo. Con MySQL Tengo dos usuarios, básicamente públicos ( DELETE, INSERT, SELECTy UPDATEpermisos) y un usuario administrador con un par de permisos adicionales.

Básicamente, en el símbolo del sistema de Windows 7 (solo desarrollo local) ...

  • ¿Es un rol usuario, grupo o un término poco utilizado específico para PostgreSQL?
  • ¿Cómo otorgo solo permisos específicos a un usuario específico para todas las tablas de una base de datos?
  • ¿Cómo otorgo todos los permisos a un usuario específico para todas las tablas de una base de datos?
  • ¿Cómo, si es que lo hace, un rol se compara con un usuario cuando usa GRANTo tiene REVOKEpermisos de usuario?

Respuestas:


48

Un rol es una entidad que puede funcionar como usuario y / o como grupo. Un rol WITH LOGINse puede utilizar como usuario, es decir, puede iniciar sesión con él. Cualquier rol puede funcionar como un grupo, incluidos los roles en los que también puede iniciar sesión. Entonces, "usuario" y "grupo" son esencialmente términos que indican el uso previsto de un rol, no hay una distinción real entre ellos. Incluso en el sabor PostgreSQL de SQL, los dos se usan más o menos como sinónimos. Por ejemplo, la documentación de CREATE USERdice:

CREATE USER ahora es un alias para CREATE ROLE.

Otorgando todo ... ver el manual paraGRANT . Probablemente quiera otorgar derechos en ALL TABLES IN SCHEMA publiclugar de todas las tablas de la base de datos.

Conceder algunos derechos ... lo mismo, pero en lugar de GRANT ALLusar, GRANT SELECT, INSERTpor ejemplo. Nuevamente, vea el manual.

Un rol es un usuario y / o un grupo. Solo puede otorgar roles, porque los roles son todo lo que hay.


¡Gran explicación!
sharadov

Entonces ... ¿cuál es la sintaxis para otorgar todos los derechos a todas las tablas en el esquema público?
AlxVallejo

@AlxVallejo esto debería ayudar . Pruebe el enlace superior o lea la GRANTpágina de documentación donde apareceALL TABLES IN SCHEMA
Craig Ringer el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.