[DB2] Grant สิทธิ์ในการใช้งานฐานข้อมูล

IBM DB2

จากบทความที่แล้ว ตรวจสอบ Privileges, Authorities and Authorizations ของฐานข้อมูล น่าจะทำให้ผู้ที่อ่าน Blog ของผมได้เข้าใจอะไรหลายๆอย่างเกี่ยวกับสิทธิของ DB2 แต่การเข้ามาจัดการ Database นั้น เราต้องให้สิทธิ(GRANT) ว่าให้ User ที่ต้องการมีสิทธิในการทำอะไรครับ โดยเรื่องของการ GRANT อันนี้กว้างมากครับ Error Message โดยผมขอจะขอยกตัวอย่างจริงที่เกิดขึ้น เมื่อนำ DB ของระบบงานเก่ามาขึ้น เพื่อไล่ Code เดิม และมาสร้างระบบใหม่บน .Net ครับ เมื่อทดสอบ Run ระบบได้แจ้ง Message เตือน ดังนี้ อธิบาย Error Message กันก่อน เพราะ Developer ส่วนใหญ่มักมองข้าม โดยเจ้า Error สามารถอธิบายได้ ดังนี้ การแก้ไข – แบบที่ 1: แก้แบบลูกทุ่ง มันฟ้อง Error อะไร ก็เพิ่มสิทธิตรงนั้น – แบบที่ 2: ถ้าลองได้แกะระบบ หรือถามผู้รู้มาแล้ว พบว่า User นั้นต้องใช้สิทธิระดับที่สูงกว่านั้น  ถ้าลองได้แกะระบบ หรือถามผู้รู้มาแล้ว พบว่า User นั้นต้องใช้สิทธิระดับที่สูงกว่านั้น เราสามารถ Grant สิทธิให้ได้เลย อย่างตัวอย่างนี้ จะลอง Grant สิทธิ User ให้เป็นระดับ DBADM (Database administration authority) ดังนี้ หมายเหตุ: ชื่อ User DSADMIN เป็นชื่อสมมตินะ เนื่องจากชื่อ Database จริงไม่สามารถเปิดเผยได้ 55 – สรุป ท้ายที่สุดนี้ สำหรับคนที่สนใจเพิ่มเติมเกี่ยวกับคำสั่ง GRANT…

[DB2] ตรวจสอบ Privileges, Authorities and Authorizations ของฐานข้อมูล

IBM DB2

บทความนี้จริงๆ คิดจะเขียนมานานและ แต่ลีมเขียน Draft ไว้ วันนี้พอดีลองเอา DB ของระบบเดิมมาขึ้น เพื่อมา Port ออกมาเป็นระบบใหม่บน .Net แต่ดันติดเรื่องสิทธิ์ใน Database ของระบบเก่า ในเมื่อได้โอกาสอันควรมาแล้ว ก็มาเริ่มอธิบายกันเลยครับ เดี๋ยวลืมไปอีก โดยก่อนที่เรามารู้เรื่องสิทธิ โดยคำว่าสิทธ์เนี่ยเป็นคำกว่าๆครับ เรามารู้จักคำที่เจาะจงไปกว่านี้ ดีกว่าครับ รู้จักสามคำนี้แล้ว สิ่งที่เราต้องรู้ คือ ความสัมพันธ์ของ 3 คำนี้ครับ โดยเราเข้าไปจัดการ Database ได้นี่ ต้องมี user ที่ได้รับการให้อำนาจ(Authorizations) ให้มีสิทธิการในการจัดการ(Privileges) และมีอำนาจในการจัดการ(Authorities) ครับ สำหรับ View (หรือ อาจจะเรียกว่าเป็น Catalog) ที่เกี่ยวกับ Privileges, Authorities and Authorizations มี ดังนี้ครับ SYSTEM CATALOG คำอธิบาย SYSCAT.DBAUTH แสดงสิทธิต่างๆใน Database SYSCAT.TABAUTH แสดงสิทธิต่างๆใน Table และ View SYSCAT.COLAUTH แสดงสิทธิต่างๆใน Column SYSCAT.PACKAGEAUTH แสดงสิทธิต่างๆใน Package SYSCAT.INDEXAUTH แสดงสิทธิต่างๆใน Index SYSCAT.SCHEMAAUTH แสดงสิทธิต่างๆใน Schema SYSCAT.PASSTHRUAUTH แสดงสิทธิต่างๆใน Server SYSCAT.ROUTINEAUTH แสดงสิทธิต่างๆในงานที่เป็น routine ได้แก่ Function, Method และ Store Procedures สำหรับ Field ในแต่ละ Catalog สามารถดูได้จาก Command ดังนี้ และท้ายที่สุดครับ คือ Query สำหรับตรวจสอบสิทธิของแต่ละ User ใน Catalog ครับ หมายเหตุ: Column…

[DB2] Export Table Data

IBM DB2

ช่วงนี้ UAT มีอะไรแปลกให้เขียนเยอะครับ อย่างตอนนี้เป็นการใช้ DB2 Export เพื่อ Export ค่า mapping ของระบบ Interface จาก DB ของทีม QA ไปยังที่ Site ลูกค้าครับ เพราะลูกค้าบอกว่า Script ที่ได้ Run ไปที่เครื่อง AIX มันไม่ครับ (มีไม่ครบ ก็ยัดจากเครื่อง QA มาเลย 555) มาดูคำสั่ง Export ดีกว่าครับ รูปแบบคำสั่ง รูปแบบคำสั่งคร่าวๆ เพราะจริงๆมี Option ให้เลือกยิบย่อยมากมายครับ ชนิดของ File ที่ Export ดังนี้ ตัวอย่างคำสั่ง กรณีแบบ .ixf (ขอเน้นการใช้แบบ .ixf เพราะ ใช้ Import ข้าม Version หรือ Platform ได้ โดยไม่มีปัญหาครับ) – ผลการทดสอบครับ กรณีแบบ del สามารถใช้คำสั่งได้ ดังนี้ หมายเหตุ: ถ้าเราอยากไม่ให้ DB2 มันเก็บ log ก็สามารถปรับคำสั่งได้ (ตัดส่วน message และ ชื่อไฟล์ log ออกไป) ดังนี้ Reference

[DB2] LOCK & UNLOCK Table

IBM DB2

บางครั้งเวลาที่เราพัฒนาระบบ เรามีความจำเป็นที่ Lock Table เพื่อบังคับให้มีการ Insert/Update Record ได้ทีละรายการเท่านั้น เพื่อจุดประสงค์บางอย่าง เช่น การ Approve ยืนยันรายการ เป็นต้น โดยรูปแบบของคำสั่ง LOCK มีรูปแบบ ดังนี้ Mode การ Lock มี 2 แบบ ได้แก่ สิ่งที่ควรระวัง เมื่อ Lock ไปแล้ว เราจะ Unlock ได้ 3 วิธี ดังนี้ Reference

[DB2] SQL สำหรับตรวจสอบ Version ของ DB2

IBM DB2

ช่วงนี้ไป UAT บ่อย เริ่มเจอปัญหาแปลกของ Environment ของ Production กับ Environment ที่ใช้ในการ Development ที่บริษัท แตกต่างกัน ทำให้เวลาที่เราฝั่งคำสั่งบางตัว อาจจะเกิดปัญหาขึ้นได้ครับ โดยวันนี้ผมขอแปะ Query สำหรับดู Version และ Fix Pack ของ DB Server ดังนี้ครับ โดยผลลัพธ์ที่ได้ จาก Query มี ดังนี้ครับ

AT Service Protocol Error Code 8 (Interactive Process)

Microsoft Windows

บางครั้งเราอาจจะมีระบบงานเก่าที่ใช้ “AT Service Protocol” พอย้ายมาระบบใหม้เวลาทำงานเจอ Error Message แนวนี้ Error Code 8 (Interactive Process) ครับ สาเหตุ การแก้ไข สุดท้ายนี้ ถ้าใครจะทำระบบงานใหม่ๆที่ต้องมี Schedule แนะนำให้ใช้ตัวนี้ครับ Task Scheduler Managed Wrapper ซึ่งเป็น Third Party ที่ช่วยจัดการเรื่องนี้ครับ ใช้งานได้ง่าย สำหรับผมใช้ทำ App ในการดึงข้อมูลจาก ThaiBMA เพื่อแปลง Format และให้ระบบอื่น Feed ข้อมูลเข้าระบบครับ แต่ถ้าอยากลองไปไล่ Library ของ Microsoft จริงๆ ตามมาดูได้ที่นี่ครับ Task Scheduler นี้ครับ Reference

[DB2] -tvf , -td@ -f คือ อะไร

IBM DB2

จริงๆ บทความนี้ผมดองมานานมาก เพราะเดือนที่แล้ว เดือนกุมภาพันธ์ เดือนแห่งการกุมขมับ เพราะ Project ล่าสุดของออมสินต้องส่ง Software ในส่วนของ Phase1 ภายในเดือนนั้นครับ หลังจากผ่านเข้าสู่ Season 2 เฮ้ยย Phase 2 พอมีเวลาได้หายใจบ้าง เลยจะมาเก็บบทความที่ดองไว้ครับ โดยวันนี้ผมขออธิบายคำสั่งเกี่ยวกับ DB2 คำสั่ง -tvf , -td@ ก่อนครับ เพราะหลายๆคนคงใช้คำสั่งเหล่านี้ โดยหลักการ CPD (Copy and Paster Development  ครับ ฮ่าๆ)  แต่ไม่รู้ว่ามัน คือ อะไร และคำสั่งที่ลองไป มันมีอะไรที่พิเศษ หรือป่าวนะ เจ้าคำสั่ง -tvf , -td@ เป็นคำสั่งที่ใช้ใน DB2 CLP (Command Line Processor) มองง่ายๆว่าเป็น DOS ของ DB2 โดยเอาไว้รันคำสั่งเฉพาะ หรือเป็น SQL ก็ได้นะครับ เพื่อจัดการกับฐานข้อมูล โดยคำสั่งขึ้นต้นด้วย db2 ตามด้วยคำสั่งที่ต้องการ โดยมีรูปแบบ ดังนี้ ตัวอย่างคำสั่งง่ายๆ หลังจากเกริ่นพื้นฐานไปแล้ว มาถึงคิวของคำสั่ง -tvf บ้างนะครับ โดยคำสั่ง -tvf อยู่ในส่วนของ option-flag ครับ Concept ของ option-flag คือ การผสมตัวอักษร ซึ่งแต่ละตัวอักษรมีคุณสมบัติเฉพาะตัวครับ สามารถดูได้จาก Help นะครับ ซึ่งผมได้ Capture มาบางส่วนแล้ว โดยอ้างอิงจาก Version 10.5 นะครับ จาก Option-Flag -tvf สามารถแปลความหมายได้ ดังนี้ครับ สำหรับ -tvf การใช้งานจริงคำสั่งนี้ใช้ เพื่อรัน Script SQL และแสดงผลลัพธ์การ…

เปลี่ยนเช็คเงินคืนภาษี เป็นเงินสด

สำหรับมนุษย์เงินเดือนอย่างเราๆ เมื่อได้เงินเดือนมาสิ่งที่ต้องหักไปมีประกันสังคม สวัสดิการต่างๆ และก็ภาษี โดยันอื่นๆช่างมันไปก่อน เรามาวกกลับมาที่ภาษีดีกว่า สำหรับขั้นตอนการเสียภาษีคำนวณอะไรต่างๆบราๆ ในเว็บอื่นมีหมดและ หรือจะลองคำนวณเล่นๆที่เว็บ WealthMagik-Tax Saving Plan ก็ได้ครับ อันนี้ผมใช้ประจำคำนวณยอด ก่อนจะยื่นภาษีครับ พอยืนภาษีไปแล้ว ถ้าเราเสียเงินเกิน ก็ต้องมานั่งดูที่เว็บนี้ว่าเงินจะมาเมื่อไหร่ 555 หลังจากรอมานานนนนแสนนาน ผมก็ได้เช็คเงินคืนภาษีมานะ เมื่อเราได้เช็คมาการ เราขึนเงินได้ที่ไหนบ้าง แบบเร็วไปที่ธนาคารกรุงไทย(KTB) ได้เงินเลย เข้าบัญชีออมทรัพย์ของธนาคารกรุงไทย ให้เขียนใบสีเขียว ถ้าเปลี่ยนเป็นเงินสด ให้เขียนใบสีแดงครับ แบบชิวๆ ไปที่ธนาคารอื่นครับ แต่มีข้อแม้ต้องยื่นเช็คก่อนบ่าย 2 นะครับ ไม่งั้นเช็คที่เรายื่นไปมีผลในวันทำการถัดไปแทนครับ จากนั้นก็รอสัก 2-3 วันเงินเข้ามาบัญชีมาครับ 😀 จริงถ้าสงสัยอะไร เราสามารถถามพนักงานของแต่ะธนาคารได้ครับ พนักงานน่ารักทุกคน 😀