Ich bin neu in postgresql und ich wäre Ihnen dankbar, wenn Sie mir mitteilen könnten, wie der folgende Fehler behoben werden kann.
Ich habe die folgenden Befehle ausgegeben:
ip_spotlight-# REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA doc FROM PUBLIC ;
ip_spotlight-# REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA net FROM PUBLIC ;
ip_spotlight# GRANT USAGE ON SCHEMA doc TO netopsapp ;
ip_spotlight-# ALTER DEFAULT PRIVILEGES IN SCHEMA doc GRANT ALL ON TABLES TO netopsapp ;
ip_spotlight-# ALTER DEFAULT PRIVILEGES IN SCHEMA net GRANT ALL ON TABLES TO netopsapp ;
Unten finden Sie eine Liste der Berechtigungen:
ip_spotlight# \dn+
List of schemas
Name | Owner | Access privileges | Description
--------+----------+----------------------+------------------------
doc | postgres | |
net | postgres | |
public | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres |
(3 rows)
Und der Fehler ist:
python3 -m pwiz --engine=postgresql --host=x.x.x.x --port=5432 --user=netopsapp --password --schema=doc --tables=bgp_communities ip_spotlight
Password:
Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/peewee.py", line 3768, in execute_sql
cursor.execute(sql, params or ())
psycopg2.ProgrammingError: permission denied for schema doc
LINE 1: SELECT * FROM "doc"."bgp_communities" LIMIT 1
Könnten Sie bitte mitteilen, wie die Berechtigungen so eingerichtet werden, dass der netopsapp
Benutzer Zugriff auf die im Schema definierten Tabellen hat?doc
PS: Die ersten beiden Befehle wurden im Postgresql-Buch als Best Practice erwähnt
postgresql
permissions
psql
nskalis
quelle
quelle
Antworten:
das löst es:
quelle
Sie führen das
GRANT
/ nicht aus,GRANT ALL
wenn Sie mit der richtigen Datenbank verbunden sind. Vielleicht verwechseln Sie Entwicklung und Produktion?Wenn Sie
\dn+
auf ip_spotlight ausführen, sehen Sie, dass Ihnen keine Berechtigungen für a erteilt wurdennetopsapp
. Das sollte sonst dort aufgeführt sein.quelle
GRANT
Anweisungen aus.GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO some_user_;
das wäre großartig :)public
some_user
execute
bedeutet und wasfunctions
bedeutet?