sql >> Database >  >> RDS >> PostgreSQL

Toekenning van PostgreSQL-privileges niet zichtbaar

Een lijst met dingen die je verkeerd hebt begrepen:

  1. ALTER DEFAULT PRIVILEGES verandert niets aan de machtigingen voor een bestaand object, in uw geval het schema.

    U moet toekennen de CREATE voorrecht op het schema:

    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    
  2. De ALTER DEFAULT PRIVILEGES verklaring die u hebt uitgevoerd, heeft alleen invloed op de machtigingen voor tabellen die zijn gemaakt door gebruiker postgres in schema tn_schema , maar het lijkt erop dat u tn_beta_migrator . wilt om tabellen te maken.

    U hebt ALTER DEFAULT PRIVILEGES niet nodig helemaal niet, aangezien de gebruiker die de tafel aanmaakt de eigenaar van de tafel wordt en standaard alle privileges op de tafel heeft.

  3. U kunt standaardrechten bekijken met \ddp in psql .

  4. Schema's maken deel uit van een database, dus u moet verbinding maken met de database om de schema's te zien.

Als u wilt dat de tabellen die zijn gemaakt door tn_beta_migrator standaard bepaalde machtigingen krijgt, moet u standaardrechten voor die gebruiker define definiëren (en niet voor postgres , zoals jij deed):

ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;



  1. MySql:MyISAM versus Inno DB!

  2. Een MySQL-tabel, indices en gegevens dupliceren

  3. MySQL gebruiken met Android

  4. krijg id van laatst ingevoegde record zonder mysql_insert_id() te gebruiken