[DB2] Grant สิทธิ์ในการใช้งานฐานข้อมูล
จากบทความที่แล้ว ตรวจสอบ Privileges, Authorities and Authorizations ของฐานข้อมูล น่าจะทำให้ผู้ที่อ่าน Blog ของผมได้เข้าใจอะไรหลายๆอย่างเกี่ยวกับสิทธิของ DB2 แต่การเข้ามาจัดการ Database นั้น เราต้องให้สิทธิ(GRANT) ว่าให้ User ที่ต้องการมีสิทธิในการทำอะไรครับ โดยเรื่องของการ GRANT อันนี้กว้างมากครับ โดยผมขอจะขอยกตัวอย่างจริงที่เกิดขึ้น เมื่อนำ DB ของระบบงานเก่ามาขึ้น เพื่อไล่ Code เดิม และมาสร้างระบบใหม่บน .Net ครับ เมื่อทดสอบ Run ระบบได้แจ้ง Message เตือน ดังนี้ อธิบาย Error Message กันก่อน เพราะ Developer ส่วนใหญ่มักมองข้าม โดยเจ้า Error สามารถอธิบายได้ ดังนี้ User ‘AAA’ (ขอปิดไว้นิดนึง ฮ่าๆ) ไม่มีสิทธิในการ SELECT ข้อมูลจาก Table SYSTEMINFORMATION ใน Schema INVEST การแก้ไข แบบที่ 1: แก้แบบลูกทุ่ง มันฟ้อง Error อะไร ก็เพิ่มสิทธิตรงนั้น [sql]db2 GRANT SELECT ON INVEST.SYSTEMINFORMATION TO DSADMIN[/sql] เมื่อได้ Run คำสั่งไปแล้ว เราต้องลองตรวจสอบด้วย Query ดังนี้ (ถ้าลอง Search ข้อมูลก่อนทำจะพบว่าไม่มีข้อมูลครับ) [sql]SELECT * FROM SYSCAT.TABAUTH WHERE GRANTEE = ‘DSADMIN’ AND TABNAME = ‘SYSTEMINFORMATION'[/sql] แบบที่ 2: ถ้าลองได้แกะระบบ หรือถามผู้รู้มาแล้ว พบว่า…