PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/02/2019 16:27:34

sihem_info
Membre

ERREUR: doit être le propriétaire de la table

bonjour a tous

je chercher a donner le droit pour mon user de telle soit autonome sur une base de Test

j'ai crée l'user avec ce privilège

ALTER ROLE "Dev" WITH LOGIN; 
GRANT USAGE ON SCHEMA public TO Dev;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO Dev;

lorsque le rôle dev a besoin de faire un drop table il reçoit ce message

production=> drop table actor;
ERREUR:  doit être le propriétaire de la table actor

Qui a une idée comment je peut corriger cette erreur

Merci pour vos aides

Hors ligne

#2 15/02/2019 20:22:54

rjuju
Administrateur

Re : ERREUR: doit être le propriétaire de la table

GRANT ALL ne donnera que les privilges de type DML (et truncate probablement).  Si vous voulez que l'utilisateur puisse effectuer également des commandes DDL, il faut qu'il soit propriétaire des objets et ait le privilege CREATE sur la base de données (et les schémas existants), ou qu'il soit propriétaire de la base.  En production, il faut bien évidemment faire bien plus attention aux privilèges que vous donnez.

Hors ligne

#3 16/02/2019 14:37:24

dverite
Membre

Re : ERREUR: doit être le propriétaire de la table

Pour que plusieurs utilisateurs puissent faire des DROP sur des objets, il faudrait que les objets appartiennent à un rôle dont ces utilisateurs sont membres. Par exemple:


CREATE ROLE createur;

GRANT createur TO user1, user2, user3;


si user1 veut créer une table, il fait


SET ROLE createur;
CREATE TABLE nomdetable(....)  -- la table appartiendra au rôle "createur"
RESET role;


Si ensuite user2 veut détruire cette table, il a le droit de faire
DROP TABLE nomdetable;

Hors ligne

Pied de page des forums