![]() |
|
![]() |
|
![]() |
สิทธิในการเข้าถึงข้อมูลความปลอดภัยของข้อมูล (security) เป็นเรื่องที่เกี่ยวข้องกับการป้องกันผู้ใช้ที่ไม่มีอำนาจในการเรียกใช้ข้อมูลนำข้อมูลจากฐานข้อมูลมาใช้ อันอาจจะเกิดผลเสียกับระบบฐานข้อมูลได้ ในระบบที่มีผู้ใช้เป็นจำนวนมากจำเป็นต้องมีการควบคุมการเรียกใช้ข้อมูล การกำหนดสิทธิในการเข้าถึงข้อมูล DBAจะกำหนด การให้สิทธิ (Authorization)แก่ผู้ใช้งานระบบฐานข้อมูลให้มีสิทธิในการใช้ข้อมูลแตกต่างกัน เช่น - สิทธิในการอ่านข้อมูลหรือเรียกดูข้อมูล (read) - สิทธิในการเพิ่มข้อมูล (insert) - สิทธิในการเปลี่ยนแปลงข้อมูล (update) - สิทธิในการลบข้อมูล (delete) - สิทธิในการสร้างดัชนี (index) - สิทธิในการสร้างตารางหรือวิว (resource) - สิทธิในการเปลี่ยนแปลงโครงสร้างข้อมูล (alteration) - สิทธิในการลบตารางหรือวิว (drop) การกำหนดสิทธิในการเข้าถึงข้อมูล และมอบอำนาจการเข้าถึงข้อมูลตลอดจนเรียกคืนอำนาจได้ DBAจะระบุสิทธิผู้ใช้ในระบบด้วยภาษา SQL ได้ดังนี้ 1.การให้รหัสแก่ผู้ใช้เป็นการกำหนดรหัสผ่านให้แก่ผู้ใช้ โดยใช้คำสั่ง CREATE เช่น ถ้าต้องการสร้างสิทธิให้แก่ผู้ใช้ชื่อ Wichaiให้เข้าในระบบฐานข้อมูลได้ในเบื้องต้นที่จะเข้าสู่ฐานข้อมูลได้จะต้องมีการยืนยันตัวบุคคลว่าเป็น Wichai จริงโดยระบบการจัดการฐานข้อมูลจะต้องทำการตรวจเช็คจารรหัสผ่านที่กำหนดให้กับ Wichai DBA จะสร้างรหัสผ่านให้แก่ Wichai ด้วยภาษา SQL โดยในตัวอย่างนี้ Wichai จะมีรหัสผ่านว่า BENZ2000 CREATE Wichai IDENTIFIED BY BENZ2000 นอกจากการให้รหัสแก่ผู้ใช้ในการใช้ฐานข้อมูลแล้ว ผู้ใช้จะถูกกำหนดโดย DBA ให้สามารถใช้ฐานข้อมูลในส่วนที่เกี่ยวข้องได้เท่านั้น การกำหนดสิทธิแก่ผู้ใช้ให้สามารถใช้ฐานข้มูล โดยกำหนดขอบเขตอำนาจการใช้ข้อมูล เราสามารถกำหนดสิทธิใดสิทธิหนึ่ง หรือบางสิทธิ หรือทุกสิทธิให้กับผู้ใช้งานได้ สิทธิการใช้งานจะมีกี่ชนิดขึ้นอยู่กับเป้าหมายที่ต้องการกำหนดสิทธิ เช่นสิทธิการทำงานกับตารางข้อมูลอาจมีเพียงแค่อ่านและเขียนข้อมูล DBA จะจะทำการกำหนดสิทธิด้วยภาษา SQL คำสั่งที่ใช้ในการกำหนดสิทธิกับผู้ใช้ได้แก่ การกำหนดสิทธิการเข้าถึงข้อมูล ด้วยคำสั่ง GRANT และ การยกเลิกสิทธิการเข้าถึงข้อมูล ด้วยคำสั่ง REVOKE 2. การกำหนดสิทธิการเข้าถึงข้อมูลในการกำหนดสิทธิการเข้าถึงข้อมูลผู้ใช้ (USERS) ในระบบการจัดการฐานข้อมูลโดยภาษา SQL จะมีการกำหนดหรืออนุญาติให้มีสิทธิเปิดเข้าใช้ (LOGGING ON) ฐานข้อมูล การกำหนดสิทธิการเข้าถึงข้อมูลเป็นคำสั่งที่ใช้กำหนดสิทธิให้กับผู้ใช้แต่ละคนมีสิทธิกระทำการใดกับข้อมูล เช่น การเพิ่มข้อมูล การแก้ไขข้อมูลหรือการลบข้อมูลในตารางใดได้บ้างหรือการกำหนดให้มีสิทธิดูข้อมูลได้เพียงอย่างเดียว การกำหนดสิทธิในการเข้าถึงข้อมูล ได้แก่ การเรียกค้นข้อมูลด้วยคำสั่ง (SELECT) การเพิ่มข้อมูลมูลด้วยคำสั่ง (INSERT) การลบข้อมูลมูลด้วยคำสั่ง (DELETE) หรือการปรับปรุง มูลด้วยคำสั่ง (UPDATE) ซึ่งการกำหนดสิทธิเหล่านี้จะอยู่ในรูปแบบของคำสั่ง GRANT เป็นดังนี้ GRANT <SELECT,INSERT,UPDATE,DELETE>ON <table name> TO <user name>; GRANT คำสั่งที่ต้องมีทุกครั้งที่ต้องการกำหนดสิทธิการเข้าถึงข้อมูล SELECT,INSERT,UPDATE,DELETEสิทธิในการจัดการข้อมูล table name ตารางหรือวิวที่ให้สิทธิในการจัดการข้อมูล user name ผู้ใช้ที่ถูกให้สิทธิในการจัดการข้อมูล 2.1 การกำหนดสิทธิในการเรียกดูข้อมูล ถ้าต้องการให้ Wichai มีสิทธิเรียกดูข้อมูลในตาราง CUSTOMERSTAB คำสั่งการกำหนดสิทธิเข้าถึงข้อมูลในภาษา SQL จะเป็นดังนี้ GRANT SELECT ON CUSTOMERSTAB TO Wichai; ผลของคำสั่งนี้ Wichai จะสามารถเข้าถึงข้อมูลในตาราง CUSTOMERSTAB ได้โดยสามารถใช้คำสั่งเรียกค้นข้อมูล(SELECT) ได้เท่านั้นแต่ไม่สามารถใช้คำสั่งอื่น ๆ ได้ 2.2 การกำหนดสิทธิในการเพิ่มข้อมูล ถ้าต้องการให้ Thidarat มีสิทธิเพิ่มเติมข้อมูลในตาราง SALESTAB คำสั่งการกำหนดสิทธิเข้าถึงข้อมูลก็จะเป็นดังนี้ GRANT INSERT ON SALESTAB TO Thidarat; ผลของคำสั่งนี้ Thidarat สามารถเข้าถึงข้อมูลในตาราง SALESTAB ได้โดยสามารถใช้คำสั่งเพิ่มเติมข้อมูล (INSERT) ได้เท่านั้นแต่ไม่สามารถใช้คำสั่งอื่น ๆ ได้ 2.3 การกำหนดสิทธิในการแก้ไขข้อมูล ถ้าต้องการให้ Thidarat มีสิทธิในการแก้ไขข้อมูล(UPDATE)ในตาราง SALESTAB คำสั่งการกำหนดสิทธิเข้าถึงข้อมูลก็จะเป็นดังนี้ GRANT UPDATE ON SALESTAB TO Thidarat; ผลของคำสั่งนี้ Thidarat สามารถเข้าถึงข้อมูลในตาราง SALESTAB ได้โดยสามารถใช้คำสั่งปรับปรุงข้อมูล(UPDATE) ได้เท่านั้นแต่ไม่สามารถใช้คำสั่งอื่น ๆ ได้ 2.4 การกำหนดสิทธิการเข้าถึงข้อมูลหลายคำสั่งของผู้ใช้เป็นกลุ่ม ในการกำหนดสิทธิการเข้าถึงข้อมูลสามารถกำหนดสิทธิในการเข้าถึงข้อมูลเป็นกลุ่มได้ ดังนี้ ถ้าต้องการให้ Wichai สามารถเรียกดูข้อมูล และเพิ่มข้อมูลได้ในตาราง ORDERSTAB คำสั่งที่ใช้ดังนี้ GRANT SELECT, INSERT ON ORDERSTAB TO Wichai; ผลของคำสั่งจะทำให้ Wichai สามารถใช้คำสั่ง SELECT และคำสั่ง INSERT ในตาราง Order ได้ ถ้าต้องการให้ทั้ง Wichai และ Thidarat สามารถใช้คำสั่ง SELECT และ INSERT ได้ จะต้องใช้การกำหนดสิทธิการเข้าถึงข้อมูลดังนี้ GRANT SELECT, INSERT ON ORDERSTAB TO Wichai, Thidarat; 2.5การกำหนดสิทธิการเข้าถึงข้อมูลโดยสามารถเข้าถึงข้อมูลบางส่วน เราสามารถกำหนดสิทธิการเข้าถึงข้อมูลเป็นคอลัมน์ได้ ถ้าต้องการ Thidarat มีสิทธิเปลี่ยนค่าในคอลัมน์ SALECOM ในตาราง SALESTAB ได้เพียงคอลัมน์เดียว จะใช้คำสั่ง GRANT UPDATE (SALECOM) ON SALESTAB TO Thidarat; ผลของคำสั่งจะทำให้ Thidarat สามารถปรับปรุงข้อมูล( UPDATE) ในคอลัมน์ SALECOMในตาราง พนักงานขาย(SALESTAB) ได้เพียงคอลัมน์เดียว ถ้าต้องการให้ Thidarat มีสิทธิเข้าถึงข้อมูลได้มากกว่า 1 คอลัมน์ โดยสามารถปรับปรุงข้อมูลในคอลัมน์ ADDRESS และ SALECOM ในตาราง SALESTAB ได้ GRANT UPDATE (ADDRESS,SALECOM) ON SALESTAB TO Thidarat; ผลของคำสั่งจะทำให้ Thidarat ปรับปรุงข้อมูล(UPDATE)ในคอลัมน์ ADDRESS และ SALECOM ในตารางพนักงานขาย( SALESTAB) ได้เพียงคอลัมน์เดียว 2.6 การให้สิทธิในการเข้าถึงข้อมูลทั้งหมด ในการกำหนดสิทธิในการเข้าถึงข้อมูลทั้งหมดในภาษา SQL สามารถใช้คำสั่งใน 2 ลักษณะ ดังนี้ -การใช้ ALL PRIVILEGES (หรือ ALL เท่านั้น) ในคำสั่ง GRANT ถ้าต้องการให้ Nattapol สามารถทำคำสั่งใด ๆ ในตาราง CUSTOMERSTAB ได้ GRANT ALL PRIVILEGES ON CUSTOMERSTAB TO Nattapol; หรือ GRANT ALL ON CUSTOMERSTAB TO Nattapol; -การใช้ PUBLIC ในคำสั่ง GRANT เป็นการให้สิทธิในการเรียกดูข้อมูลแก่ผู้ใช้ทุกคน โดยจะใช้ PUBLIC ร่วมด้วยกับคำสั่ง SELECT ควบคู่ไปกับคำสั่ง GRANT เช่น ถ้าต้องการให้ผู้ใช้คนไหนก็ได้เข้าไปดูตารางคำสั่งซื้อจะใช้คำสั่งดังนี้ GRANT SELECT ON ORDERSTAB TO PUBLIC ; การใช้คำสั่ง GRANT ในรูปของการให้สิทธิแก่ผู้ใช้ทั้งหมดในการแก้ไขปรับปรุงตารางข้อมูลได้จะเป็นอันตรายต่อข้อมูลมาก จึงควรระมัดระวังในการใช้คำสั่ง GRANT กับ PUBLIC ให้มาก 2.7 การอนุญาตให้คนอื่นให้สิทธิการเข้าถึงตารางแทนเจ้าของตาราง ในบางครั้งผู้สร้างตารางอาจต้องการให้ผู้ใช้คนอื่นสามารถให้สิทธิต่าง ๆ ในตารางได้โดยใช้ GRANT SELECT ร่วมกับอนุประโยค WITH GRANT OPTION ถ้า Thidarat ซึ่งเป็นเจ้าของตาราง CUSTOMERSTAB ต้องการให้ Wichai มีสิทธิอนุญาตให้ผู้ใช้คนอื่น ๆ มาใช้ตารางของตนจะใช้คำสั่งดังนี้ GRANT SELECT ON CUSTOMERSTAB TO Wichai WITH GRANT OPTION; ผลของคำสั่งนี้จะทำให้ Wichai มีสิทธิในการเลือกให้สิทธิ (SELECT) แก่บุคคลที่สามได้ที่ 3.การยกเลิกสิทธิการเข้าถึงข้อมูลคำสั่งการยกเลิกสิทธิการเข้าถึงข้อมูลเป็นคำสั่งการยกเลิกสิทธิใดๆแก่ผู้ใช้ตามที่ได้ใช้กำหนดสิทธิการเข้าถึงข้อมูลไว้ คำสั่งการยกเลิกสิทธิการเข้าถึงข้อมูลมีรูปแบบคือ REVOKE <SELECT,INSERT,UPDATE,DELETE>ON <table name> FROM <user name>; REVOKE เป็นคำสั่งที่ต้องมีทุกครั้งที่ต้องการยกเลิกสิทธิการเข้าถึงข้อมูล SELECT,INSERT,UPDATE,DELETEสิทธิในการจัดการข้อมูล table name ตารางหรือวิวที่ให้สิทธิในการจัดการข้อมูล user name ผู้ใช้ที่ถูกให้สิทธิในการจัดการข้อมูล 3.1 การยกเลิกสิทธิในการเรียกดูข้อมูล 3.2 การยกเลิกสิทธิในการแก้ไขและลบข้อมูล ถ้าต้องการยกเลิกสิทธิในการแก้ไขข้อมูลในตารางพนักงานขาย(SALESTAB) ของ Thidarat คำสั่งการยกเลิกสิทธิเข้าถึงข้อมูลดังนี้ REVOKE UPDATE ON SALESTAB TO Thidarat; ผลจากคำสั่งนี้ Thidarat จะไม่สามารถแก้ไขข้อมูลในตารางพนักงานขาย(SALESTAB) ได้ ถ้าต้องการยกเลิกสิทธิในการเพิ่มเติมข้อมูลในตารางคำสั่งซื้อ(ORDERSTAB)ของ Thidarat จะใช้คำสั่งดังนี้ REVOKE INSERT ON ORDERSTAB FROM Wichai; ผลจากคำสั่งนี้ Wichai จะไม่สามารถเพิ่มเติมข้อมูลในตารางคำสั่งซื่อ( ORDERSTAB) ได้ถ้าต้องการยกเลิกสิทธิในการเพิ่มเติมข้อมูลและการลบข้อมูลในตารางลูกค้า( CUSTOMERSTAB) ของ Wichai และ Nattapol จะใชคำสั่งดังนี้ REVOKE INSERT,DELETE ON CUSTOMERSTAB FROM Wichai,Nattapol; ผลจากคำสั่งนี้ Wichai และ Nattapol จะไม่สามารถเพิ่มเติมข้อมูลหรือลบข้อมูลในตาราง ลูกค้า(CUSTOMERSTAB) ได้ |
|
|