PostgreSQL – ELIMINAR EL PAPEL

En PostgreSQL , la instrucción DROP ROLE para eliminar un rol.

Syntax: DROP ROLE [IF EXISTS] target_role;

Analicemos la sintaxis anterior:

  • Después de las palabras clave DROP ROLE, agregue el nombre del rol que se eliminará.
  • Usar la opción SI EXISTE se puede usar para emitir un aviso en lugar de un error cuando se realiza una solicitud para eliminar un rol que no existe.

es importante tener en cuenta que para eliminar un rol de superusuario, uno debe ser superusuario. Para eliminar roles que no sean de superusuario, necesitará el privilegio para crear un rol mediante la instrucción CREATE ROLE. Si accidentalmente intentamos eliminar un rol al que se ha hecho referencia en cualquier base de datos, PostgreSQL genera un error. En este caso, hay que dar dos pasos:

  • Debe eliminar los objetos de la base de datos que pertenecen a ese rol en particular mediante la instrucción DROP OWNED o reasignar la propiedad de los objetos de la base de datos a otro rol mediante la instrucción REASSIGN OWNED.
  • También deberá revocar todos los demás permisos otorgados al rol.

En otras palabras, siga las declaraciones a continuación exactamente como se muestra para eliminar un rol:

REASSIGN OWNED BY target_role TO another_role;
DROP OWNED BY target_role;


DROP ROLE target_role;

Ejemplo:

En este ejemplo:

  • Aquí, crearemos un nuevo rol llamado geeksforgeeks y usaremos este rol para crear una tabla llamada empleados .
  • Luego, mostraremos la guía paso a paso sobre cómo eliminar el rol geeksforgeeks del servidor de base de datos PostgreSQL.

Primero, inicie sesión en PostgreSQL usando el rol de Postgres:

psql -U postgres

En segundo lugar, cree un nuevo rol llamado geeksforgeeks usando la siguiente declaración:

create role geeksforgeeks with login password 'geeks12345';

Tercero, otorgue el privilegio createdb a geeksforgeeks usando las siguientes declaraciones:

alter role geeksforgeeks createdb;

Cuarto, cree una nueva base de datos llamada ventas :

create database sales;

Ahora, inicie sesión en el servidor de la base de datos PostgreSQL utilizando el rol geeksforgeeks como se muestra a continuación:

psql -U geeksforgeeks -W sales

Agregue una nueva tabla a la base de datos de Ventas :

create table employee(
    customer_id int generated always as identity,
    customer_name varchar(150) not null,
    primary key(employee_id)
);

Ahora muestre la lista de tablas en la base de datos de ventas usando el siguiente comando:

\du

Esto le mostrará el siguiente resultado:

Ahora inicie sesión como Postgres e intente eliminar el rol de geeksforgeeks:

drop role geeksforgeeks;

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *