2011-04-18 18 views
6

क्या आप किसी भी अतिरिक्त उपयोगकर्ता विशेषाधिकार दिए बिना किसी फ़ील्ड को अद्यतन होने से प्रतिबंधित कर सकते हैं?एक बार लिखें, कई mysql फ़ील्ड पढ़ें

असल में एक पंक्ति में एक मूल्य केवल एक सम्मिलन कथन के दौरान सेट किया जा सकता है।

उत्तर

3

आप एक update trigger का उपयोग कर सकते अपडेट होने से रोकने के लिए मूल्य:

इस लिंक को देख।

+0

@ ocaso-protal यह 'ट्रिगर blockUpdate बनाने प्रत्येक पंक्ति के लिए परीक्षण पर अपडेट से पहले सेट NEW.value = OLD.value शुरू चाल किया; END' – lostsource

+2

+1 गंदे गंदे हैक, लेकिन ओपी ने कहा कि वह उपयोगकर्ता के निजी लोगों के साथ गड़बड़ नहीं करना चाहता है। – Johan

0

आपके प्रश्न के लिए बिल्कुल सही नहीं है: यदि आप टेबल पर mysqlisampack चलाते हैं, तो तालिका केवल पढ़ने के लिए ही हो जाएगी।

यह अच्छा है यदि आपके पास डेटाहायरहाउस है जो केवल संदर्भ है, लेकिन अच्छा नहीं है अगर आप केवल "लाइव" कॉलम केवल पढ़ने के लिए चाहते हैं।

7

हां। यदि आप grant केवल insert और select विशेषाधिकार हैं। जैसा:

grant select, insert, update(message, time) on hibtest.message to 'worm'@'localhost' identified by 'worm' 

... इस तरह से उपयोगकर्ता केवल message और time कॉलम अपडेट कर सकते हैं।

1

माइस्क्ल सम्मिलित विशेषाधिकारों और विशेषाधिकारों के अपडेट के बीच अंतर करता है, जो उपयोगकर्ता को डालने का विकल्प देगा, लेकिन बाद में अपडेट नहीं होगा। http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html

संबंधित मुद्दे