PlusMagi's Blog By Pitt Phunsanit Cybersecurity,Database ความน่าเชื่อถือและความรับผิดชอบ (Accountability, Reliability, Ownership, Confidentiality)

ความน่าเชื่อถือและความรับผิดชอบ (Accountability, Reliability, Ownership, Confidentiality)

“>

ในโลกของสถาปัตยกรรมข้อมูลที่ซับซ้อน การสร้างความไว้วางใจ (Trust) ให้กับระบบฐานข้อมูลไม่ใช่แค่การสำรองข้อมูล แต่คือการสร้างหลักประกันว่าข้อมูลจะถูกจัดการอย่างถูกต้องตามหลักการสากล องค์ประกอบสำคัญที่ค้ำยันความมั่นคงทางข้อมูล (Data Integrity) คือ Accountability, Ownership, Confidentiality และ Reliability

การยกระดับความมั่นคงข้อมูลด้วยหลักการสากลใน PostgreSQL

“>

หลักการเหล่านี้เป็นเสาหลักของการกำกับดูแลข้อมูล (Data Governance) ซึ่งสามารถนำมาประยุกต์ใช้และบังคับใช้ได้อย่างเข้มงวดในระบบฐานข้อมูลระดับ Enterprise อย่าง PostgreSQL การทำความเข้าใจว่าแต่ละหลักการทำงานอย่างไรในระดับ SQL จะช่วยให้สถาปนิกข้อมูลสามารถออกแบบระบบที่มีความเสี่ยงต่ำและเชื่อถือได้

1. Accountability และ Ownership: การกำหนดผู้รับผิดชอบ

“>

Accountability (ความรับผิดชอบ) คือการติดตามว่าใครเป็นผู้ดำเนินการคำสั่งใด (Who did it?) และ Ownership (ความเป็นเจ้าของ) คือการกำหนดว่าใครมีสิทธิ์ควบคุมทรัพยากรนั้นๆ (Who owns it?) ใน PostgreSQL เราใช้ระบบ Role และ Permission ในการบังคับใช้หลักการนี้อย่างเคร่งครัด

“>

เราสามารถสร้าง Role เพื่อจำกัดสิทธิ์การเข้าถึงได้ ตัวอย่างเช่น การสร้าง Role สำหรับผู้ใช้งานที่สามารถอ่านข้อมูลได้เท่านั้น (Read-Only) โดยไม่ให้สิทธิ์ในการแก้ไขโครงสร้าง (Schema Modification):

SQL

-- 1. สร้าง Role สำหรับผู้ใช้งานที่ต้องการอ่านข้อมูลเท่านั้น (Read-Only)
CREATE ROLE readonly_user WITH LOGIN PASSWORD 'securepass';

-- 2. กำหนดสิทธิ์ SELECT บนตาราง 'products' ให้กับ Role นี้เท่านั้น
GRANT SELECT ON products TO readonly_user;

-- 3. ป้องกันไม่ให้ Role นี้สามารถแก้ไขโครงสร้างหรือข้อมูลได้
REVOKE ALL ON products FROM readonly_user;

2. Confidentiality: การปกป้องข้อมูลลับ

“>

Confidentiality (การรักษาความลับ) คือการจำกัดการเข้าถึงข้อมูลที่ละเอียดอ่อน (Sensitive Data) ให้เฉพาะผู้ที่ได้รับอนุญาตเท่านั้น ใน PostgreSQL เราใช้คำสั่ง GRANT และ REVOKE เพื่อควบคุมสิทธิ์ระดับคอลัมน์ (Column-level) ได้อย่างแม่นยำ

“>

สมมติว่าตาราง ‘user_data’ มีคอลัมน์ ’email’ และ ‘salary’ ซึ่งเป็นข้อมูลลับ เราต้องการให้ Role ‘analyst’ เห็นได้แค่ชื่อและอีเมลเท่านั้น:

SQL

-- สมมติว่ามีตาราง user_data (id, name, email, salary) อยู่แล้ว

-- 1. ให้สิทธิ์ SELECT บนตารางให้ Role analyst
GRANT SELECT ON user_data TO analyst;

-- 2. จำกัดสิทธิ์ให้เห็นเฉพาะคอลัมน์ name และ email เท่านั้น (โดยการสร้าง View)
CREATE VIEW view_user_info AS SELECT name, email FROM user_data;

-- 3. ให้สิทธิ์ SELECT บน View แทนการให้สิทธิ์บนตารางหลัก
GRANT SELECT ON view_user_info TO analyst;

3. Reliability: การรับประกันความน่าเชื่อถือของข้อมูล

“>

Reliability (ความน่าเชื่อถือ) คือการรับประกันว่าข้อมูลมีความถูกต้อง (Consistency) และพร้อมใช้งาน (Availability) เสมอ PostgreSQL รองรับคุณสมบัติ ACID (Atomicity, Consistency, Isolation, Durability) ซึ่งทำให้การทำธุรกรรม (Transaction) มีความน่าเชื่อถือสูง

“>

การใช้ Transaction จะช่วยให้มั่นใจได้ว่าชุดคำสั่งทั้งหมดจะสำเร็จพร้อมกัน หรือล้มเหลวทั้งหมด (All or Nothing) ตัวอย่างการโอนเงินที่ต้องทำหลายขั้นตอน:

SQL

BEGIN; -- เริ่มต้น Transaction
-- 1. ลดเงินจากบัญชี A
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
-- 2. เพิ่มเงินเข้าบัญชี B
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT; -- ยืนยันการเปลี่ยนแปลงทั้งหมด (ถ้าไม่มีข้อผิดพลาด)

บทสรุป: การสร้างสถาปัตยกรรมข้อมูลที่ปลอดภัย

“>

การจัดการความน่าเชื่อถือและความรับผิดชอบของข้อมูลใน PostgreSQL ไม่ใช่แค่การใช้คำสั่ง CREATE USER แต่เป็นการออกแบบสถาปัตยกรรมที่ใช้ประโยชน์จากระบบ Role, View, และ Transaction อย่างเต็มที่ การผสานรวมหลักการ Accountability, Confidentiality, และ Reliability เข้าด้วยกัน จะช่วยให้องค์กรของคุณมีระบบฐานข้อมูลที่ทนทานต่อภัยคุกคาม มีการตรวจสอบย้อนกลับได้ และเป็นไปตามมาตรฐานสากลด้านการกำกับดูแลข้อมูลอย่างแท้จริง

Exit mobile version