2010-03-17 11 views
133

मैं एसक्यूएल के बारे में एक किताब पढ़ रहा हूं। उस पुस्तक में विज्ञापन हैक क्वेरी शब्द है, जिसे मैं समझ नहीं पा रहा हूं।विज्ञापन प्रश्न क्या है?

विज्ञापन हाक क्वेरी क्या है?

उत्तर

172

विज्ञापन "इस उद्देश्य के लिए" लैटिन है। आप इसे "फ्लाई ऑन" क्वेरी, या "बस इतना" क्वेरी कह सकते हैं। यह SQL क्वेरी की तरह तुम सिर्फ शिथिल टाइप है जहाँ आप की जरूरत है यह

var newSqlQuery = "SELECT * FROM table WHERE id = " + myId; 

... जो एक बिल्कुल अलग प्रश्न हर बार कोड की है कि लाइन निष्पादित किया जाता है, myId के मूल्य के आधार है। किसी विज्ञापन की क्वेरी के विपरीत एक पूर्वनिर्धारित क्वेरी है जैसे संग्रहीत प्रक्रिया, जहां आपने उस तालिका (कहने) से चयन करने के पूरे सामान्य उद्देश्य के लिए एक एकल क्वेरी बनाई है, और आईडी को चर के रूप में पास कर दिया है।

+12

@ डेविड हेडलंड आपकी क्वेरी 'एसक्यूएल इंजेक्शन हमलों' के लिए कमजोर है ... आपको पैरामीटर का उपयोग करना होगा। – Parid0kht

+27

@ पारिदोकः निश्चित रूप से। मैं उस उपयोग की वकालत नहीं कर रहा हूं, मैं एक विज्ञापन की क्वेरी की अवधारणा को समझा रहा हूं, जो सवाल था। –

+9

@ डेविड हेडलंड: हाँ, मैं समझता हूं..लेकिन आपके उत्तर में इसका उल्लेख करना बेहतर हो सकता है क्योंकि ऐसे उपयोगकर्ता हैं जो इसे पढ़ते हैं और इस हमले का कोई विचार नहीं है। – Parid0kht

-4

एसक्यूएल सर्वर "विज्ञापन हॉक क्वेरी" में विज्ञापन हॉक वितरित क्वेरीज़ के लिए भी उपयोग किया जाता है। ये OpenRowset या OpenDatasource के माध्यम से किसी अन्य सर्वर पर विज्ञापन प्रश्न हैं। विज्ञापन वितरित क्वेरीज़ को केवल कॉन्फ़िगर करने के बाद ही अनुमति दी जाती है। यह एक सर्वर विन्यास विकल्प है।

+0

यह एसक्यूएल सर्वर के बारे में नहीं है। सवाल एक विशेष एंटरप्राइज समाधान के बारे में नहीं था बल्कि अर्थ के बारे में सामान्य समझ के बारे में – arthur

1

यह भी जोड़ना चाहते हैं कि विज्ञापन हाक क्वेरी एसक्यूएल इंजेक्शन हमलों के लिए कमजोर है। हमें इसका उपयोग करने से बचने और इसके बजाय पैरामीटरयुक्त एसक्यूएल का उपयोग करने की कोशिश करनी चाहिए (like PreparedStatement in Java)।

+6

एक विज्ञापन-प्रसार क्वेरी _not_ SQL इंजेक्शन के लिए कमजोर है। उपयोगकर्ता-इनपुट स्वीकार करने वाली एक अनूठी क्वेरी SQL इंजेक्शन के लिए कमजोर है। – Ben

+0

@Ben एक विज्ञापन-प्रसार क्वेरी हमेशा अपरिवर्तित होती है। यदि हम उपयोगकर्ताओं को चर का पर्दाफाश नहीं करते हैं तो यह एसक्यूएल इंजेक्शन पर हमला नहीं किया जा सकता है; लेकिन बिंदु यह है कि एड-हाॉक क्वेरी एसक्यूएल इंजेक्शन के लिए जोखिम भरा है। – xli

20

एक विज्ञापन-प्रश्न क्वेरी एक क्वेरी है जिसे क्वेरी जारी होने के पल से पहले निर्धारित नहीं किया जा सकता है। यह उत्पन्न होने पर जानकारी प्राप्त करने के लिए बनाया जाता है और इसमें गतिशील रूप से निर्मित SQL शामिल होता है जिसे आम तौर पर डेस्कटॉप-निवासी क्वेरी टूल द्वारा बनाया जाता है।

की जांच: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html

+0

तो यदि मैं एक स्थिर क्वेरी टाइप करता हूं और इसे एक बार चलाता हूं, तो यह "विज्ञापन" नहीं है? – jumxozizi

0

तदर्थ प्रश्नों उन है कि पहले से ही परिभाषित नहीं कर रहे हैं एक नियमित आधार पर की जरूरत नहीं कर रहे हैं कि कर रहे हैं, ताकि वे रिपोर्ट के विशिष्ट समूह में शामिल या

+0

क्या आप समझा सकते हैं कि आप और क्या लिख ​​रहे हैं? "ठेठ सेट" क्या है; क्या आपका मतलब संकलित कोड है? – Ben

-3

एक विज्ञापन प्रश्नों नहीं कर रहे हैं -कॉक क्वेरी है:

  1. पूर्व-नियोजित प्रश्न।
  2. पूर्व-निर्धारित प्रश्न।
  3. पल प्रश्न का विस्तार।
  4. प्रश्न जो कोई परिणाम नहीं लौटाएगा।
+0

एसक्यूएल के मामले में इसका क्या अर्थ है? इसके अलावा, सभी "प्रश्न जो कोई परिणाम नहीं लौटाएंगे।" विज्ञापन होक्स हैं। – jumxozizi

-3

विज्ञापन यह प्रश्न कंप्यूटर परिभाषा का प्रकार है। जिसका अर्थ यह है कि यह क्वेरी विशेष रूप से किसी भी जानकारी को प्राप्त करने के लिए डिज़ाइन की जाती है जब इसकी आवश्यकता होती है। पूर्वनिर्धारित। यह https://www.youtube.com/watch?v=0c8JEKmVXhU

+0

मुझे लगता है कि "पूर्वनिर्धारित" "विज्ञापन" के विपरीत है। – jumxozizi

0

एक विज्ञापन-क्वेरी क्वेरी एक क्वेरी है जिसे क्वेरी जारी होने के पल से पहले निर्धारित नहीं किया जा सकता है। यह उत्पन्न होने पर जानकारी प्राप्त करने के लिए बनाया जाता है और इसमें गतिशील रूप से निर्मित SQL शामिल होता है जिसे आम तौर पर डेस्कटॉप-निवासी क्वेरी टूल द्वारा बनाया जाता है। एक विज्ञापन यह प्रश्न कंप्यूटर या डेटाबेस प्रबंधक में नहीं रहता है लेकिन डेटा उपयोगकर्ता की आवश्यकताओं के आधार पर गतिशील रूप से बनाया गया है।

एसक्यूएल में, एक विज्ञापन हैक क्वेरी एक कम टाइपेड कमांड/क्वेरी है जिसका मूल्य कुछ चर पर निर्भर करता है। जब भी आदेश निष्पादित किया जाता है, तो वैरिएबल के मान के आधार पर परिणाम अलग होता है। इसे पूर्व निर्धारित नहीं किया जा सकता है और आमतौर पर गतिशील प्रोग्रामिंग एसक्यूएल क्वेरी के अंतर्गत आता है। एक विज्ञापन की क्वेरी कम रहता है और रनटाइम पर बनाया जाता है।

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