יותר

טופולוגיית PostGIS מחייבת מנהל מערכת

טופולוגיית PostGIS מחייבת מנהל מערכת


אני מריץ את PostGIS בשרת אובונטו. אני יכול להוסיף את התוסף טופולוגיה באמצעות CREATE EXTENSION, אך כשאני מנסה להשתמש בו בתור כל דבר אחר שאינו מנהל, אני מסורב להרשות.

ניהלתי את GRANT USGE ON SCHEMA טופולוגיה לציבור, כפי שהוצע ברשת זו. כשאני מריץ CreateTopology () אני מקבל שגיאת הרשאות כמו הבאה:

שגיאה: ההרשאה נדחתה עבור topology_id_seq

הקשר: טופולוגיית פונקציית PL / pgSQL. יצירתיופולוגיה (תווים משתנים, מספר שלם, דיוק כפול, בוליאני) שורה 17 ב- FOR מעל SELECT שורות

אני מניח שזה אומר שאני צריך לקוף עם הרשאות נוספות בסכימת הטופולוגיה. למרות זאת,

  1. זה נראה כמו פגם עיצובי מוזר. האם סיומת הטופולוגיה לא צריכה לדאוג אוטומטית להרשאות כאשר היא נוצרת, בדיוק כמו שהסיומת PostGIS עושה עבור הטבלה spatial_ref_sys?
  2. אני לא בטוח עד כמה אני צריך לרדת לחור הארנבות של ההרשאות כדי להפוך את הרחבה לשמישה.

האם מישהו אחר נתקל בנושא זה?

הנה הפלט של SELECT postgis_full_version () מהמשתמש הרגיל:

"POSTGIS =" 2.1.5 r13152 "GEOS =" 3.4.2-CAPI-1.8.2 r3921 "PROJ =" Rel. 4.8.0, 6 במרץ 2012 "GDAL =" GDAL 1.11.2, פורסם 2015/02/10 "LIBXML =" 2.9.1 "LIBJSON =" לא ידוע "רופא טופולוגיה"

קבוצת פקודות SQL שהייתה נחוצה עבור PostGIS 2.2.1:

צור סיומת postgis_topology; שימוש בהענקת טופולוגיית סכמות ל- dbuser; הענק הכל על כל הטבלאות בטופולוגיית סכמות ל- dbuser; שימוש במענק, בחר על כל הרצפים בטופולוגיית הסכימה ל- dbuser;

אתה צריך להיות משתמש-על של מסד הנתונים כדי לבצע שאילתות אלה, למשל באובונטו:

sudo -u postgres psql dbname -c "צור סיומת postgis_topology;" sudo -u postgres psql dbname -c "הענק שימוש בטופולוגיית סכמות ל- dbuser;" sudo -u postgres psql dbname -c "הענק הכל על כל הטבלאות בטופולוגיית הסכימה ל- dbuser;" sudo -u postgres psql dbname -c "שימוש במענק, בחר בכל הרצפים בטופולוגיית הסכימה ל- dbuser;"

עליך גם להעניק הרשאות עבור רצף הטבלה:

שימוש במתן, בחר לפי רצף topology_id_seq לציבור;

או אם ברצונך לספק הרשאות ליברליות לכל הרצפים:

שימוש במענק, בחר בכל הרצפים בתכנית הציבורית לציבור;