Permission refusée pour relation

J’ai essayé de lancer la commande simple sql:

select * from site_adzone; 

et j’ai cette erreur

 ERROR: permission denied for relation site_adzone 

Quel pourrait être le problème ici?

J’ai aussi essayé de faire la sélection pour d’autres tables et j’ai eu le même problème. J’ai aussi essayé de faire ça:

 GRANT ALL PRIVILEGES ON DATABASE jerry to tom; 

mais j’ai reçu cette réponse de la console

 WARNING: no privileges were granted for "jerry" 

Avez-vous une idée de ce qui peut être faux?

    GRANT sur la firebase database n’est pas ce dont vous avez besoin. Accorder directement sur les tables.

    L’octroi de privilèges sur la firebase database sert principalement à accorder ou révoquer des privilèges de connexion. Cela vous permet de spécifier qui peut faire des choses dans la firebase database s’il dispose d’autres permissions suffisantes.

    Vous voulez plutôt:

      GRANT ALL PRIVILEGES ON TABLE side_adzone TO jerry; 

    Cela prendra soin de ce problème.

    Publier une réponse Ron E pour les privilèges de subvention sur toutes les tables, car cela pourrait être utile aux autres.

     GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry; 

    Connectez-vous d’abord à la firebase database appropriée , puis exécutez:

     GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry; 

    Pour accorder des permissions à toutes les tables existantes du schéma, utilisez:

     GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA  TO  

    Pour spécifier les permissions par défaut qui seront appliquées aux futures tables, utilisez:

     ALTER DEFAULT PRIVILEGES IN SCHEMA  GRANT  ON TABLES TO ; 

    par exemple

     ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO admin; 

    Si vous utilisez des colonnes SERIAL ou BIGSERIAL vous voudrez probablement faire la même chose pour SEQUENCES , sinon votre INSERT échouera ( l’ IDENTITY Postgres 10 ne souffre pas de ce problème et est recommandé par rapport aux types SERIAL ), c.-à-d.

     ALTER DEFAULT PRIVILEGES IN SCHEMA  GRANT ALL ON SEQUENCES TO ; 

    Voir aussi ma réponse aux permissions PostgreSQL pour Web App pour plus de détails et un script réutilisable.

    Ref:

    SUBVENTION

    PRIVILÈGES ALTERNATIFS PAR DÉFAUT

    La première et importante étape est la connexion à votre firebase database:

     psql -d yourDBName 

    2 étapes, accorder des privilèges

     GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO userName; 

    Assurez-vous de vous connecter à psql en tant que propriétaire des tables. pour savoir qui possède les tables, utilisez \dt

    psql -h CONNECTION_STRING DBNAME -U OWNER_OF_THE_TABLES

    alors vous pouvez exécuter les subventions

    Cela se produit souvent lorsque vous créez une table en tant qu’utilisateur postgres et que vous essayez ensuite d’y accéder en tant qu’utilisateur ordinaire. Dans ce cas, il est préférable de vous connecter à nouveau en tant que postgres et d’utiliser ALTER TABLE OWNER TO someuser pour changer la propriété de la table à l’utilisateur qui utilisera la table.

     GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to jerry; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to jerry; GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to jerry;