PostGIS / QGIS में INSERT पर विशेषाधिकार


12

मैं अपने डेटाबेस में उपयोगकर्ताओं के लिए विशेषाधिकार सेट करने का प्रयास कर रहा हूं ताकि वे केवल भौगोलिक सारणी पर इनसेट, इन्सर्ट, DELETE और निश्चित रूप से चयन कर सकें।

चूंकि मैं अपनी ID के लिए कुछ SERIAL प्रकारों का उपयोग कर रहा हूं, इसलिए मैं उपयोगकर्ताओं को इस क्षेत्र को मैन्युअल रूप से संपादित करने की संभावना भी नहीं देना चाहूंगा। इसलिए मैं कॉलम-वार विशेषाधिकारों को परिभाषित कर रहा हूं। यह UPDATE भाग पर ठीक काम करता है, लेकिन QGIS में बटन एक नई वस्तु के निर्माण की अनुमति देता है। यह काम करने का एकमात्र तरीका है जब मैं विशेषाधिकारों की परिभाषा में किसी भी क्षेत्र को निर्दिष्ट नहीं करता। यहां तक ​​कि जब मैं सभी क्षेत्रों का चयन करता हूं तो यह काम नहीं करता है (भले ही मैंने सोचा होगा कि किसी भी कॉलम को निर्दिष्ट नहीं करना और उन सभी को निर्दिष्ट करना एक समान होगा)।

यह कुछ ऐसा प्रतीत होता है जो मुझे समझ में नहीं आता है, या DB और QGIS के बीच उचित बातचीत के लिए विशेषाधिकार परिभाषा में एक सीमा है। क्या किसी के पास कोई जानकारी या सलाह है जो मुझे यह समझने में मदद कर सके कि क्या हो रहा है, और / या (और भी बेहतर) मुझे अपना लक्ष्य प्राप्त करने में मदद करता है?

मैं हमेशा शैली की परिभाषा में गैर-संपादन योग्य क्षेत्र के रूप में सेट करके इससे निपट सकता हूं, लेकिन चूंकि कोई भी इसे सेट कर सकता है जैसे वे कृपया, मैं अधिक सुरक्षित विकल्प पसंद करूंगा।

QGIS 2.14 रनिंग, PostgreSQL 9.5 के लिए PostGIS 2.3।


क्या आप उपयोगकर्ता के अधिकार (विशेषाधिकार) सेट करने के लिए GRANT SQL कमांड का उपयोग करते हैं? क्या आपने अपनी टेबल पर INSERT लिखा है?
ज़ोल्टन

@Zoltan हां, मेरी क्वेरी इस तरह दिखती हैGRANT INSERT (col2, col3, col4) ON table TO users
GuiOm Clair

5
जिस उपयोगकर्ता के पास INSERT अधिकार होना चाहिए, उसके पास प्राथमिक कुंजी कॉलम के पूर्ण अधिकार होने चाहिए। अन्यथा वह इन्सर्ट नहीं कर पाएगी। मुझे नहीं लगता कि इसके आसपास कोई रास्ता है। आप QGIS में केवल उस कॉलम की दृश्यता को सीमित कर सकते हैं, जैसा कि आपने पहले ही उल्लेख किया है।
मीका

1
@ मिचा ओके तो, वास्तव में यह कुल मिलाकर समझ में आता है कि इस तरह से ... मुझे लगता है कि मेरे पास एक और विशिष्ट तरीका है जिसमें INSERT DO NOTHING पर एक कॉलम-विशिष्ट ट्रिगर और प्राथमिक कुंजी के लिए UPHATE DO NOTHING है, जो किसी भी अन्य संपादन को रोक देगा। प्राथमिक कुंजी। धन्यवाद।
गुइओम क्लेयर

3
या आप SERIAL कॉलम को छोड़कर अपनी तालिका का एक दृश्य बनाते हैं और केवल उस दृश्य तक पहुंच देते हैं।
जोबे

जवाबों:


0

जिस उपयोगकर्ता के पास INSERT अधिकार होना चाहिए, उसके पास प्राथमिक कुंजी कॉलम के पूर्ण अधिकार होने चाहिए। अन्यथा वह इन्सर्ट नहीं कर पाएगी। मुझे नहीं लगता कि इसके आसपास कोई रास्ता है। आप QGIS में केवल उस कॉलम की दृश्यता को सीमित कर सकते हैं, जैसा कि आपने पहले ही उल्लेख किया है।

आपकी टिप्पणी के बारे में: column-specific trigger ON INSERT DO NOTHING and ON UPDATE DO NOTHING for the primary keyमुझे यकीन नहीं है कि यह काम करेगा। नई पंक्ति सम्मिलित करते समय, एक नई प्राथमिक कुंजी बनाई जानी चाहिए, जाहिर है। आप इसे दरकिनार नहीं करना चाहते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.