8/14/2555

การกำหนดผู้ใช้ฐานข้อมูล






  เนื่องจาก MySQL ทำงานภายใต้ Client Server สามารถทำงานได้ทั้งเครือข่าย Internet และ Intranet นั่นหมายความว่าผู้ใช้สามารถใช้ MySQL จากที่ใดก็ได้ในโลกที่มี Internet  อย่างไรก็ตามถ้ามีผู้ใช้ผู้อื่นที่ไม่พึงประสงค์ เข้ามาใช้ข้อมูลของเราหรือผู้บุกรุกระบบ   (Hacker) ก็จะสร้างความเสียหายแก่ข้อมูลของเราได้ ความจำเป็นของระบบป้องกันความปลอดภัย จึงต้องเข้ามาเกี่ยวข้องด้วย  MySQL ได้มีระบบดังกล่าวมาให้เรียบร้อยแล้ว มันสามารถกำหนดผู้ใช้ฐานข้อมูลตลอดจนสิทธิในการใช้ เช่นสามารถดูข้อมูลได้อย่างเดียว หรือสามารถดูแก้ไขและลบข้อมูลได้ เป็นต้น  การกำหนดสิทธิ(ระดับการใช้ข้อมูล) และผู้ใช้มีรูปแบบคำสั่งดังต่อไปนี้
         รูปแบบคำสั่งการกำหนดผู้ใช้ข้อมูล 
 

       รูปแบบคำสั่งกำหนดผู้ใช้ข้อมูล
       GRANT  all/select,insert,update,delete  ON tablename TO  username;         คำอธิบาย
       GRANT  all/select,insert,update,delete  ON tablename TO  username;
       GRANT คำ สั่งกำหนดสิทธิและผู้ใช้ข้อมูล
        all ให้สิทธิทั้งหมด insert, select, update, delete
       select,insert,update,delete  สิทธิการใช้อาจไม่ต้องกำหนดให้ทั้งหมดก็ได้ สามารถเลือกได้ตามความต้องการ
        ON เป็นการกำหนดให้ table ชื่ออะไร
        TO ให้แก่ใคร
        username ชื่อของ user ที่ต้องการกำหนด
       ตัวอย่าง
        SELECT * FROM phonebook ORDER BY  salary;
 
 วิธีการทำ 1
         ให้กำหนดสิทธิผู้ใช้ฐานข้อมูล table  phonebook ชื่อ jib  โดยสามารถจัดการข้อมูลได้ทุกอย่าง
          ผลลัพธ์ดังภาพข้างล่าง
 
mysql> 
mysql> GRANT all ON phonebook TO jib;
Query OK, 0 rows affected (0.03 sec)

mysql>  
 วิธีการทำ 2
         ให้กำหนดสิทธิผู้ใช้ฐานข้อมูล table  phonebook ชื่อ somchai  โดยสามารถ select และ insert data ได้เท่านั้น
          ผลลัพธ์ดังภาพข้างล่าง
 
mysql>
mysql> GRANT select,insert ON phonebook TO somchai;
Query OK, 0 rows affected (0.00 sec)

mysql>    
           MySQL ยังสามารถขอดู user ที่เราได้กำหนดไปแล้วได้ด้วย
           รูปแบบคำสั่งการขอดูผู้ใช้ข้อมูล 
 
       รูปแบบคำสั่งขอดูผู้ใช้ข้อมูล
       SELECT  user();         คำอธิบาย
       SELECT  user();
       SELECT ขอดูข้อมูล
       user() ข้อมูล user ที่เรากำหนด
      ตัวอย่าง
       SELECT  user();
 
วิธีทำ
          ให้ขอดู user ที่เรากำหนดไว้แล้ว
           ผลลัพธ์ ดังภาพ
 
mysql>

mysql> SELECT user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.01 sec)

mysql>     

 
การยก เลิกผู้ใช้ฐานข้อมูล
       เมื่อเราสามารถกำหนดผู้ใช้ฐานข้อมูลได้แล้วเราก็ต้องสามารถยกเลิกได้ด้วย การยกเลิกสิทธิเราสามารถยกเลิกทั้งหมด หรือยกเลิกสิทธิเฉพาะอย่างได้ เช่น user ชื่อ jib มีสิทธิสามารถทำได้ทุกอย่าง select, insert, update, delete data ได้ ในขณะเดียวกันเราก็สามารถยกเลิกสิทธิบางอย่างได้เช่น ยกเลิก การ update และ delete data ได้เป็นต้น
         รูปแบบคำสั่งการยกเลิกผู้ใช้ข้อมูล 
 
       รูปแบบคำสั่งจัดการกำหนดผู้ใช้ข้อมูล
       REVOKE  all/select,insert,update,delete  ON tablename From  username;         คำอธิบาย
       REVOKE  all/select,insert,update,delete  ON tablename From  username;
       REVOKE คำ สั่งยกเลิกการกำหนดสิทธิและผู้ใช้ข้อมูล
        all ยกเลิกทั้งหมด
       select,insert,update,delete  ยกเลิกบางส่วน สามารถเลือกได้ตามความต้องการ
        ON ยกเลิกที่ table ชื่ออะไร
        From ยกเลิกผู้ใด
        username ชื่อของ user ที่ต้องการยกเลิก
       ตัวอย่าง
        REVOKE  all ON phonebook From jib;
 
 วิธีการทำ 1
         ให้ยกเลิกสิทธิผู้ใช้ฐานข้อมูล table  phonebook ชื่อ somchai  โดยยกเลิกทั้งหมด (ได้สร้างจากข้างต้นแล้ว)
          ผลลัพธ์ดังภาพข้างล่าง
 
mysql> 
mysql> REVOKE all ON phonebook FROM somchai;
Query OK, 0 rows affected (0.01 sec)

mysql>  
 วิธีการทำ 2
         ให้ยกเลิกสิทธิผู้ใช้ฐานข้อมูล table  phonebook ชื่อ jib โดยยกเลิกเฉพาะ update, delete (ได้สร้างจากข้างต้นแล้ว)
          ผลลัพธ์ดังภาพข้างล่าง
 
mysql>

mysql> REVOKE update,delete ON phonebook FROM jib;
Query OK, 0 rows affected (0.00 sec)

mysql>     
        Tip  user โดยทั่วไปเช่นผู้สั่งซื้อของผ่านทางอินเทอร์เนต จะไม่สามารถแก้ไขและลบข้อมูลได้ จะมี user เฉพาะเท่านั้นที่สามารถแก้ไขและลบข้อมูลได ้เช่น user admin เป็นต้น ดังนั้นการกำหนดสิทธิ user จึงหมายถึงความปลอดภัยของระบบด้วย

0 ความคิดเห็น:

แสดงความคิดเห็น