Devo limitare un utente, accedere solo a tabelle di uno schema particolare solo. Ho provato a seguire la query e accedere come user1_gmail_com. Ma ho ricevuto un errore in seguito quando provo a sfogliare qualsiasi tabella dello schema.ERRORE: autorizzazione negata per lo schema user1_gmail_com al carattere 46
la mia domanda: errore
SELECT clone_schema('my_application_template_schema','user1_gmail_com');
CREATE USER user1_gmail_com WITH PASSWORD 'myloginpassword';
REVOKE ALL ON ALL TABLES IN SCHEMA user1_gmail_com FROM PUBLIC;
GRANT SELECT ON ALL TABLES IN SCHEMA user1_gmail_com TO user1_gmail_com;
SQL:
ERROR: permission denied for schema user1_gmail_com at character 46
In statement:
SELECT COUNT(*) AS total FROM (SELECT * FROM "user1_gmail_com"."organisations_table") AS sub
Aggiornato Domanda di lavoro:
SELECT clone_schema('my_application_template_schema','user1_gmail_com');
CREATE USER user1_gmail_com WITH PASSWORD 'myloginpassword';
REVOKE ALL ON ALL TABLES IN SCHEMA user1_gmail_com FROM PUBLIC;
GRANT USAGE ON SCHEMA user1_gmail_com TO user1_gmail_com;
GRANT SELECT ON ALL TABLES IN SCHEMA user1_gmail_com TO user1_gmail_com;
Quindi cosa fa "clone_schema()'? –
Copia di tutte le tabelle in my_application_template_schema per user1_gmail_com schema.https: //wiki.postgresql.org/wiki/Clone_schema – Ramprasad
Né il 'clone_schema()' né i tuoi esempi contengono l'istruzione in cui si verifica l'errore. Quindi da dove viene questa affermazione che genera l'errore? –