मैं कैसे DB2 9.7 के साथ विंडोज पर स्थानीय db2admin को सभी विशेषाधिकार प्रदान करता हूं?


10

मेरे पास मेरे डेवलपर स्टेशन के रूप में ओएस विंडोज एक्सपी पेशेवर संस्करण, सर्विस पैक 3 के साथ एक लैपटॉप है।

मैंने एक्सप्रेस-सी संस्करण के IBM DB2 UDB 9.7 फिक्स पैक 4 को डाउनलोड और स्थापित किया है।

मेरे पास db2admin नामक एक स्थानीय विंडोज खाता है जिसे मैं अपने स्थानीय डेटाबेस DB2 (डेवलपर उद्देश्यों) के स्थानीय इंस्टॉल के लिए उपयोग कर रहा हूं।

कमांड विंडो को चलाए बिना मैं निम्नलिखित मुद्दों को चला सकता हूं:

db2 attach to db2 user db2admin using xxxxxxxxxx

यह मुझे DB2 नामक मेरे उदाहरण से जुड़ने की अनुमति देता है।

मैं अपना बना डेटाबेस कमांड चला सकता हूं।

मैं तब DB2 में मेरे db2admin खाते के लिए सभी विशेषाधिकार प्रदान करने के लिए डेटाबेस से कनेक्ट करने का प्रयास करता हूं।

db2 CONNECT TO MYDB;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

हालाँकि जब मैं इसे चलाता हूं, तो यह DB2 मुझे बताता है कि मेरे वास्तविक विंडोज़ उपयोगकर्ता खाते (synprgcma) के पास उपयोगकर्ता db2admin को अधिकार देने का अधिकार नहीं है।

इसलिए अगर मैं दूसरी स्क्रिप्ट को निम्न में बदलूं:

db2 CONNECT TO MYDB USER db2admin USING xxxxxxxx;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

तब DB2 मुझे बताता है कि db2admin अपने आप को अधिकार नहीं दे सकता है या अधिकार नहीं दे सकता है (वास्तव में यह मुझे बताता है कि एक आईडी स्वयं को अधिकार नहीं दे सकता है या अधिकार नहीं दे सकता है)।

इसलिए मैं स्तब्ध हूं। मेरे पास DB2 (9.5, और मुझे याद नहीं है कि मुझे कौन सा फिक्स पैक था)।

मैं स्थानीय व्यवस्थापक खाते के लिए आवश्यक अधिकारियों को कैसे अनुदान दूं? मेरा मानना ​​है कि बाइंड कमांड चलाने के लिए मुझे इसकी आवश्यकता है जो मुझे आगे करने की आवश्यकता है:

db2 CONNECT TO MYDB;
db2 bind @db2cli.lst blocking all grant public sqlerror continue CLIPKG 20;
db2 CONNECT RESET;

किसी भी सहायता की सराहना की जाएगी।

संपादित करें: मुझे इससे संबंधित कुछ लिंक मिले हैं। अभी भी निश्चित नहीं है कि इसे कैसे काम करना है, लेकिन कम से कम मैंने कुछ प्रलेखन पाया है।

जवाबों:


5

अपने प्रश्न के संपादन में अंतिम उपरोक्त लिंक के आधार पर मैंने अपना उत्तर पाया। मैं सिस्टम खाते को बदल नहीं सकता क्योंकि हमारे लॉगऑन हमारे सिस्टम से LDAP से हैं और मैं समूहों को नियंत्रित नहीं कर सकता और क्या नहीं।

इसलिए मैंने निम्नलिखित कार्य किया:

  1. DB2 GUI खोला (इस तरह से करना सबसे आसान था)।
  2. Db2admin के रूप में वांछित डेटाबेस से जुड़ा।
  3. उपयोगकर्ता के रूप में डेटाबेस में मेरा लॉगऑन जोड़ा गया।
  4. सभी अधिकारियों को उस आईडी (मेरी आईडी) को प्राप्त करें।
  5. डिस्कनेक्ट।
  6. मेरी आईडी के रूप में वांछित डेटाबेस से कनेक्ट करें।
  7. सभी अधिकारियों को db2admin पर जाएं।
  8. डिस्कनेक्ट।

देखा! सभी अधिकारियों के रूप में db2admin लॉगऑन।

संपादित करें:मैं उपरोक्त को छोड़ने जा रहा हूं क्योंकि इससे मुझे यह जानने में मदद मिली कि DB2 में कुछ दिलचस्प चीजें कैसे करें। हालांकि, मुझे पता चला है कि डेटाटेक्स और ACCESSCTRL अधिकारियों के साथ DBADM / SECADM ने उदाहरण के मालिक (मेरे मामले में db2admin आईडी) को डेटाबेस से बातचीत करने के लिए आवश्यक सभी अधिकार दिए हैं। मैं वास्तव में स्क्रिप्ट में ऊपर दिए गए उन अनुदान लाइनों पर टिप्पणी कर सकता था। वे एक स्क्रिप्ट से बचे हुए थे जो DB2 के पुराने संस्करण के खिलाफ थे। मैंने यह भी पाया है कि अगर डेटाबेस बी से डेटाबेस ए को पुनर्स्थापित करने के बाद मुझे उदाहरण स्वामी डीबीएडीएम की आवश्यकता है, तो रजिस्ट्री चर DB2_RESTORE_GRANT_ADMIN_AUTHORITY को YES (फिक्स पैक 2 और इसके बाद के संस्करण में उपलब्ध) सेट करना आसान है। फिर मुझे उदाहरण के लिए DBADM के मालिक को देने की कोशिश नहीं करनी है। यह स्वचालित रूप से दी जाती है कि किसी भी डेटाबेस में उदाहरण के लिए बहाल।


सुनिश्चित नहीं हैं कि DB2 GUI से आपका क्या मतलब है। क्या कोई कमांड लाइन संस्करण है जिसे हम आज़मा सकते हैं?
सूर्य

@ sunk818 - चरण कमांड लाइन के लिए भी समान होंगे। यह अधिक है कि DB2 संस्करण 9.7 में शुरू होने वाली सुरक्षा के संबंध में कैसे कार्य करता है।
क्रिस एल्डरिक

एक डेटाबेस बनाने के लिए SYSADM का उपयोग करने के साथ मेरी चिंता का विषय था ... शायद मैंने गलत सवाल का दौरा किया है। ;)
सूर्य

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