Las bases de datos son cruciales, y es el trabajo del administrador controlar qué diferentes roles pueden hacer los usuarios dentro de una base de datos dada. Como parte de la autorización, el administrador puede definir entidades de usuario dentro de la base de datos y otorgar o revocar varios privilegios a los roles.
De esa manera, alcanza el control sobre quién puede acceder a una base de datos y qué privilegios tienen si pueden acceder a la base de datos. Por ejemplo, puede revocar la modificación de la base de datos o otorgar todos los privilegios en el esquema a un usuario o usuarios en una tabla determinada. Esta guía detalla cómo usar PostgreSQL para otorgar a un usuario todos los privilegios en el esquema a un usuario.
Cómo otorgar privilegios a los usuarios en PostgreSQL
Cuando crea un nuevo rol, obtienen algunos privilegios por defecto. Sin embargo, la mayoría de los privilegios requieren que el administrador les otorgue a diferentes usuarios para regular el acceso y el control de un esquema. Puede otorgar todos los privilegios a la vez o por separado.
Para este tutorial, creemos un nuevo role llamado Linuxhint1.
$ sudo -iu Postgres
# crear rol LinuxHint1 Iniciar contraseña 'Linuxhint';
Tenga en cuenta que estamos conectados como post -put, El papel predeterminado creado una vez que instala PostgreSQL.
Con el rol (usuario) creado, podemos enumerar los roles disponibles utilizando el siguiente comando:
# \ du
Los roles disponibles se mostrarán en un formato de tabla.
Post -put es el papel predeterminado y tiene la mayoría de los privilegios ya otorgados. Sin embargo, el nuevo papel, Linuxhint1, no tiene privilegios hasta que lo concedamos.
Otorgando un privilegio específico a un usuario
El rol creado no puede modificar el esquema a menos que lo permita. Verifiquemos esto creando primero una tabla como el papel predeterminado, post -put.
# Crear nombres de tabla (m_id int generado siempre como identidad, fname vachar (100) no nulo, lname varchar (100) no nulo, edad int);
Puede enumerar las relaciones disponibles, como se muestra a continuación:
A continuación, abra un nuevo shell e inicie sesión en PostgreSQL utilizando el otro rol, Linuxhint1, que creamos anteriormente usando el siguiente comando:
$ psql -u linuxhint1 -d postgres
El -d Especifica que el rol es usar la base de datos de Postgres.
Intente leer el contenido de la tabla que creamos usando el SELECCIONAR dominio.
# Seleccionar * de nombres;
Devuelve un Permiso denegado Error que obstaculiza al usuario acceder a la tabla.
En tal caso, debemos otorgar los privilegios de roles para seleccionar/ver datos de la tabla dada utilizando la siguiente sintaxis:
# Grant privilege_name en table_name a role_name;
Para otorgar los privilegios, use la sesión de Postgres.
Una vez concedido, intente volver a rerún el comando anterior.
Eso es todo. Usted logró otorgar el privilegio seleccionado al usuario específico.
Otorgando todos los privilegios al esquema a un usuario
Hasta ahora, hemos logrado otorgar solo un privilegio sobre el esquema a un usuario. Bueno, eso no es suficiente. El usuario no puede modificar el esquema a menos que le otorgue todos los privilegios, como insertar y actualizar.
Hay diferentes formas de lograr esto. Primero, vamos a otorgar al usuario todos los privilegios a una tabla determinada Usando la siguiente sintaxis:
# Otorgar todo en table_name a role_name;
El usuario puede interactuar y modificar la tabla en particular. Sin embargo, no pueden trabajar con otras tablas en el esquema.
A otorgar todos los privilegios en todas las tablas en un esquema particular, Use la siguiente sintaxis:
# Otorgar todas las tablas en esquema esquema_name a rol_name;
Por último, puedes otorgar privilegios específicos, como insertar o seleccionar todas las tablas en el esquema a un papel determinado.
# Grant privilege_name en todas las tablas en Schema schema_name a rol_name;
El rol puede seleccionar datos en todas las tablas en el esquema especificado. Así es como define qué privilegios otorgar en el esquema a diferentes usuarios.
Conclusión
PostgreSQL es un poderoso DBMS. Tiene diferentes características, incluida la permitencia al administrador otorgar varios privilegios a los usuarios. Otorgar todos los privilegios en el esquema a los usuarios significa permitir al usuario modificar e interactuar con todas las tablas en el esquema especificado. Hemos visto cómo aplicar eso y otras formas de otorgar privilegios sobre el esquema a los roles utilizando la declaración de subvención en PostgreSQL.