sql >> Database >  >> RDS >> PostgreSQL

Hoe alle privileges op weergaven toe te kennen aan een willekeurige gebruiker?

De reden is dat u extra privileges nodig heeft om toegang te krijgen tot een weergave of tabel. Rechten op de database dekken niet de toegang tot alle objecten erin.

Het is anders met functies:EXECUTE privilege wordt verleend aan public standaard. Maar de functie wordt uitgevoerd met de privileges van de huidige gebruiker. Mogelijk bent u geïnteresseerd in de SECURITY DEFINER modifier voor CREATE FUNCTION . Maar normaal gesproken is het voldoende om SELECT op betrokken tafels.

Per documentatie over standaardrechten:

Afhankelijk van het type object, kunnen de aanvankelijke standaardprivileges het toekennen van enkele privileges aan PUBLIC omvatten . De standaard is geen openbare toegang voor tabellen, kolommen, schema's en tabelruimten; CONNECT privilege en TEMP privilege voor het maken van tabellen voor databases; EXECUTE privilege voor functies; en USAGE privilege voor talen.

Mogelijk bent u geïnteresseerd in deze DDL-opdracht (vereist Postgres 9.0 of later):

GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;

Verbonden met de betreffende database natuurlijk (zie de opmerking van @marcel hieronder), en als gebruiker met voldoende privileges. Mogelijk bent u ook geïnteresseerd in de instelling DEFAULT PRIVILEGES :

  • Alles op een specifiek schema in de db toekennen aan een groepsrol in PostgreSQL

Meer gedetailleerd antwoord over het beheren van privileges:

  • Hoe STANDAARDPRIVILEGES voor GEBRUIKERS beheren op een DATABASE versus SCHEMA?

pgAdmin heeft een functie voor meer geavanceerde bulkbewerkingen:

Of u kunt de systeemcatalogi doorzoeken om DDL-instructies te maken voor bulktoekenning / intrekking ...




  1. Hoe EXTRACTVALUE() werkt in MariaDB

  2. Eenheidstesten voor PL/SQL

  3. Waarom kan ik geen kolomaliassen gebruiken in de volgende SELECT-expressie?

  4. MySQL-opdracht invoegen versus T-SQL-querysyntaxis met voorbeelden