- 29
- เมษายน
ลองนึกภาพ — หน่วยงานของคุณมีเอกสารที่เซ็นแบบ paperless แล้ว 100,000 ฉบับ ทั้งสัญญาจัดซื้อจัดจ้าง เอกสารการเบิกจ่าย รายงานการประชุมบอร์ด ข้อมูลส่วนบุคคล (PII) ของพนักงาน และข้อมูลผู้รับบริการ — ทั้งหมดอยู่ในไฟล์ PDF ที่ระบบ ERP เก็บไว้
คำถามคือ — เก็บที่ไหน? ใน database หรือ file system? ใครเข้าถึงได้บ้าง? แค่ผ่านแอป หรือใครเข้า server ก็เปิดได้? ถ้ามีคน copy ทั้งหมดออกไป — รู้ได้ไหม? และถ้า hard drive หาย หรือ backup tape ถูกขโมย — เปิดได้ไหม?
หลายหน่วยงานไม่เคยถามคำถามเหล่านี้ให้ครบ จนเกิดเหตุการณ์ขึ้นจริง บทความนี้อธิบาย 3 แนวทางการเก็บเอกสารใน ERP และ trade-off ที่ผู้บริหารต้องเข้าใจก่อนตัดสินใจ
Approach #1: เก็บไฟล์ PDF ใน Database
วิธีที่ง่ายที่สุดและพบบ่อยในระบบ ERP — เก็บไฟล์ PDF เป็น BLOB (Binary Large Object) ใน database
│ PostgreSQL Database │
│ ┌────────────────────────┐ │
│ │ c_edocument table │ │
│ ├────────────────────────┤ │
│ │ id | metadata │ │
│ │ name | metadata │ │
│ │ pdf_blob| ★ ไฟล์ PDF │ │
│ │ | เก็บที่นี่ │ │
│ └────────────────────────┘ │
└─────────────────────────────┘
ข้อดี:
- Security ดี: ผู้ใช้ต้องผ่านแอปเท่านั้น ไม่มี file ให้ copy โดยตรง
- Backup รวมในชุดเดียว: backup database = backup เอกสาร
- Transaction Consistency (ACID): เพิ่ม/ลบเอกสารพร้อม metadata ในธุรกรรมเดียว
- Audit log ครบ: ทุกการเข้าถึงผ่านแอปทำให้บันทึก log ได้
- ไม่มี orphan files: ลบ record = ลบไฟล์ ไม่มีไฟล์ตกค้าง
ข้อเสีย:
- Database โตเร็วมาก: PDF เฉลี่ย 2 MB × 1 ล้านฉบับ = 2 TB
- Backup ช้าและใช้พื้นที่มาก: ต้อง backup ทั้งหมดทุกครั้ง
- Performance ตกเมื่อ DB ใหญ่: query slow, indexing ลำบาก
- HA/Replication แพง: ต้องเก็บสำเนาทั้งหมดไปยัง standby
- Database tuning ยากขึ้น: BLOB ใหญ่กระทบ buffer pool
ตัวอย่างขนาด:
เอกสาร 50,000 ฉบับ/ปี × 2 MB = 100 GB/ปี
10 ปี = 1 TB ใน database
หน่วยงานขนาดใหญ่:
เอกสาร 500,000 ฉบับ/ปี × 2 MB = 1 TB/ปี
10 ปี = 10 TB ใน database
เหมาะกับ: หน่วยงานขนาดเล็ก/กลาง ที่เอกสารไม่เกิน 100,000 ฉบับ และต้องการ security เป็นหลัก
Approach #2: เก็บไฟล์ PDF ใน File System
วิธีที่ใช้กันมากในระบบ ERP ที่ scale — เก็บไฟล์ใน file system หรือ shared storage แล้วเก็บแค่ path ใน database
│ PostgreSQL │ │ File System │
│ ┌────────────────────┐ │ │ /docs/ │
│ │ c_edocument │ │ │ ├─ 2026/ │
│ ├────────────────────┤ │ ──→ │ │ ├─ 04/ │
│ │ id | metadata │ │ │ │ │ ├─ AIP-001.pdf │
│ │ path | ★ path │ │ │ │ │ ├─ AIP-002.pdf │
│ │ | ของไฟล์ │ │ │ │ │ └─ ... │
│ └────────────────────┘ │ │ └─ ... │
└─────────────────────────┘ └──────────────────────┘
↑
เปิดอ่านได้ตรง ๆ
ใครเข้าถึง folder
ก็ copy ทั้งหมดได้
ข้อดี:
- Database เบา ไว: เก็บแค่ metadata + path
- Performance ดี: query เร็ว index เล็ก
- Storage ราคาถูก: NAS, S3 ถูกกว่า DB storage มาก
- Streaming ใหญ่ ๆ ทำได้ดี: ส่งไฟล์ขนาดใหญ่ไม่กระทบ DB
- Scale ง่าย: เพิ่ม disk เพิ่ม path
- Backup แยกได้: backup DB + files แยกตาม strategy
ข้อเสีย — และนี่คือจุดที่อันตราย:
- ❌ ใครเข้า file system ได้ — copy ทั้ง folder ได้
- ❌ Bypass แอป = ไม่มี audit log: เปิดไฟล์ตรงไม่ผ่านแอป ระบบไม่รู้
- ❌ ไม่มี ACL ระดับแอป: file system permission ใช้คนละระบบกับ user role
- ❌ Sysadmin / DBA / outsourcer มีสิทธิ์ลึก: คนเหล่านี้เข้า server ได้
- ❌ Backup tape ถูกขโมย → เปิดได้ทั้งหมด: ไฟล์อยู่ในรูป plaintext
- ❌ Orphan files: ลบ DB record แล้วไฟล์อาจตกค้าง
สถานการณ์ความเสี่ยงจริง
วิศวกรจาก vendor IT เข้ามา troubleshoot server มีสิทธิ์ root/sudo เพื่อเช็คระบบ สามารถ
tar czf /tmp/all.tar.gz /docs/ ในไม่กี่วินาที ออกไปพร้อม USB → เอกสารทั้งระบบหายในวันเดียว
Sysadmin ที่ดูแลระบบมาหลายปี ลาออก ก่อนหมด access copy ทั้ง folder /docs/ เมื่อย้ายไปทำงานคู่แข่ง → มีข้อมูลทั้งหมด
Backup tape ถูกส่งไปเก็บที่ off-site storage ระหว่างขนส่งสูญหาย ใครพบ tape สามารถเปิดอ่านได้หมด
Server ใน data center ถูกขโมย hard drive Disk ถูกถอดไปใส่เครื่องอื่น เปิด /docs/ folder อ่านได้ทุกไฟล์
ในทุก scenario นี้ — audit log ของแอปจะไม่เห็นอะไรเลย เพราะการเข้าถึงเกิดที่ระดับ OS ไม่ใช่ผ่านแอป
เหมาะกับ: ไม่แนะนำสำหรับเอกสารราชการที่มีความสำคัญ — ยกเว้นเก็บแบบ encrypted (ดู Approach #3)
Approach #3: Encrypted Object Storage (ทางออกที่แก้ทั้ง 2 ปัญหา)
แนวทางที่ผสาน security ของ Approach #1 กับ scalability ของ Approach #2 โดยเพิ่มชั้นของ encryption
│ ผู้ใช้ → ผ่านแอปเท่านั้น (HTTPS + Auth) │
└────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────┐
│ Saeree ERP App (ผู้ถือ master key เพียงผู้เดียว) │
│ ├─ Authenticate user │
│ ├─ Check role-based permission │
│ ├─ Audit log ครบ │
│ └─ Decrypt + stream ไปยัง browser │
└─────────┬──────────────────────────────┬───────────┘
│ │
▼ (metadata only) ▼ (encrypted blob)
┌──────────────────┐ ┌─────────────────────┐
│ PostgreSQL │ │ Object Storage │
│ - file_id │ │ /vault/ │
│ - storage_key │ │ ├─ a8f3c2.enc │
│ (random UUID) │ │ ├─ d7e9b1.enc │
│ - sha256_hash │ │ ├─ c4f5a6.enc │
│ - access_rules │ │ └─ ... │
│ - encrypted_dek │ │ │
└──────────────────┘ │ ★ AES-256 encrypted │
│ เปิดตรงไม่ได้ │
│ ชื่อไฟล์ random │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Key Management │
│ Service (KMS / HSM) │
│ - Master keys │
│ - แยกจาก data │
└─────────────────────┘
หลักการสำคัญ
1. Separation of Concerns
แต่ละ component ทำหน้าที่ชัดเจน:
- Database: เก็บ metadata เท่านั้น (เบาและไว)
- Object Storage: เก็บ ciphertext (scale ได้)
- KMS: เก็บ keys (security)
ถ้าใครได้ component เดียว — เปิดเอกสารไม่ได้
2. Encryption at Application Layer
ไฟล์ถูก encrypt ก่อนเขียนลง storage และ decrypt ที่แอปเท่านั้น แม้ sysadmin หรือ DBA จะเข้าถึง storage ตรง — ก็เห็นเป็น ciphertext ทั้งหมด
3. Filename Obfuscation
ชื่อไฟล์ใน storage เป็น UUID random เช่น a8f3c2d1.enc ไม่บอก content ใด ๆ จาก path ใครเห็น folder structure ก็ guess ไม่ออกว่าไฟล์ไหนสำคัญ
4. Per-document Encryption Keys
แต่ละไฟล์มี key ของตัวเอง ดังนั้น key หลุด 1 ไฟล์ ≠ ทุกไฟล์เสีย — เป็น "blast radius" ที่จำกัดเสียหาย
ข้อดีรวม
- ✓ DB เบา เหมือน Approach #2
- ✓ Performance ดี เหมือน Approach #2
- ✓ Scale ง่าย เหมือน Approach #2
- ✓ Sysadmin / DBA เข้าตรงไม่เปิด เหมือน Approach #1
- ✓ Backup tape หาย → เปิดไม่ได้ (ดีกว่าทั้ง 2 แบบ)
- ✓ ตรวจจับการ copy ตรงได้ เพราะถ้า copy ออกไปก็เปิดไม่ได้
ข้อเสีย:
- Implementation ซับซ้อนกว่า
- ต้องดูแล KMS แยก
- Key rotation ต้องวางแผน
ตารางเปรียบเทียบ 3 Approach
| มิติ | A: Database | B: File System | C: Encrypted Storage ★ |
|---|---|---|---|
| Performance | ปานกลาง | ดีมาก | ดี |
| Database Size | ใหญ่ | เบา | เบา |
| Storage Cost | แพง | ถูก | ถูก |
| Bypass app เข้าถึง | ✗ ทำได้ผ่าน DB | ✓ ทำได้ ง่าย | ✗ เปิดไม่ออก |
| Sysadmin Risk | ปานกลาง | สูง | ต่ำ |
| DBA Risk | สูง | ต่ำ | ต่ำ |
| Backup Tape ถูกขโมย | เสี่ยง | เสี่ยง | ปลอดภัย |
| Audit Log | ผ่านแอป | อาจ bypass | ผ่านแอป |
| Scale 1TB+ | ลำบาก | ดี | ดี |
| Implementation | ง่าย | ง่าย | ปานกลาง |
ถ้ามีคน copy ออกไปแล้ว — รู้ได้ยังไง?
นี่คือคำถามที่ผู้บริหารหลายคนกังวล ขออธิบายแบบจริงใจ
ความจริงทางเทคนิค
ไฟล์ดิจิทัลที่ถูก copy ตรวจจับได้ยากกว่ากระดาษถ่ายเอกสาร เพราะ:
- ไม่ทิ้งร่องรอย physical
- ไม่มี watermark กระดาษ
- คุณภาพเหมือน original 100%
- ทำได้ในวินาทีเดียว
แต่ระบบที่ออกแบบดี ทำสิ่งเหล่านี้ได้
1. ตรวจจับการเข้าถึงผิดปกติ
- เข้าระบบตี 3 → alert
- Login จาก IP ต่างประเทศ → alert
- Export bulk โดยไม่มีเหตุผลใน workflow → alert
2. Watermark ระบุผู้รับ (per-access watermark)
ทุกครั้งที่ใครคนหนึ่งเปิดดาวน์โหลด PDF — ระบบฝัง watermark ที่ระบุ:
- ชื่อผู้ดู
- วันเวลา
- IP address
- เลข transaction
ผลลัพธ์: หาก PDF หลุดออกไปสาธารณะ — รู้ทันทีว่าใครเป็นคนทำหลุด
มีทั้งแบบ:
- Visible watermark: เห็นได้ด้วยตา (ทับเอกสาร)
- Invisible watermark: ซ่อนใน metadata หรือ steganography
3. Audit Trail แบบ Tamper-Evident
บันทึกทุกการเข้าถึงในรูปแบบที่แก้ไขย้อนหลังไม่ได้:
- ใครเปิด
- เมื่อไหร่
- จาก device อะไร
- IP address
- ดูกี่นาที / ดาวน์โหลดหรือไม่
ใช้เทคนิค hash chain (เหมือน blockchain) ผูก log เข้าด้วยกัน — ใครแก้ chain แตกตรวจจับได้ทันที
4. DRM (Digital Rights Management)
จำกัดสิ่งที่ทำได้กับ PDF หลังดาวน์โหลด:
- ห้าม print
- ห้าม copy text
- ห้าม edit
- เปิดได้แค่ 7 วันแล้วต้อง verify ใหม่
- Revoke การเข้าถึงระยะไกลได้
5. Behavioral Monitoring + AI
ระบบเรียนรู้พฤติกรรมปกติของแต่ละผู้ใช้ และ alert เมื่อมีพฤติกรรมแตกต่างไปจากปกติ:
- พนักงานที่ปกติเปิดเอกสาร 10 ไฟล์/วัน → วันหนึ่งเปิด 500 ไฟล์
- ผู้บริหารที่ปกติเข้าระบบจาก office → เข้าจาก mobile กลางคืน
เปรียบเทียบ: กระดาษ vs Paperless ที่ออกแบบดี
หลายคนคิดว่าเอกสารกระดาษปลอดภัยกว่า — ลองเปรียบเทียบดู
| ภัยคุกคาม | กระดาษ | Paperless ที่ออกแบบดี |
|---|---|---|
| คนนอกขโมยทางกายภาพ | เสี่ยง | ป้องกันได้ |
| คนในถ่ายเอกสารแอบแชร์ | เสี่ยงมาก | ป้องกันได้ + ตามรอย |
| รู้ว่าใครเข้าดูเอกสาร | ทำไม่ได้ | ทำได้ (audit log) |
| รู้ว่าใครเอาเอกสารออกไป | ทำไม่ได้ | ทำได้ (watermark) |
| ตรวจจับการแก้ไข | ทำได้บ้าง | ทำได้ดีมาก (crypto) |
| สำเนาจำนวนมาก | ยาก | ง่าย ⚠ |
| Revoke การเข้าถึงระยะไกล | ทำไม่ได้ | ทำได้ (DRM) |
| เก็บ audit ระยะยาว | ทำไม่ได้ | 10+ ปี |
ข้อสังเกต: Paperless มี "forensic capability" ที่กระดาษทำไม่ได้ — รู้ว่าเกิดอะไรขึ้นกับเอกสารทุกครั้ง
ความจริงที่ต้องยอมรับ
ก่อนตัดสินใจ มีหลักการ 3 ข้อที่ต้องเข้าใจ:
1. ไม่มีระบบไหน "100% ป้องกันได้"
แม้แต่กระดาษก็มีคน photocopy ได้ ดิจิทัลมี screenshot และ screen recording — ความปลอดภัยคือเรื่องของ "ความน่าจะเป็น" ไม่ใช่ "absolute"
2. เป้าหมายไม่ใช่ "ป้องกัน 100%" แต่คือ:
- ลด attack surface
- เพิ่มความยากในการ leak
- เพิ่ม cost ของผู้ที่จะ leak
- ตรวจจับและ track ได้เมื่อเกิด
- พิสูจน์ในศาลได้ว่าใครทำหลุด
3. Paperless ทำได้ดีกว่ากระดาษคือ "Forensic capability"
ไม่ใช่แค่ "ป้องกันการขโมย" แต่คือ "รู้ว่าใครขโมย" — ซึ่งเป็น deterrent ที่ทรงพลัง
คำแนะนำสำหรับหน่วยงานราชการ
ถ้ายังใช้ Approach #1 (DB) อยู่
ตอนนี้ทำได้:
- รักษาระดับ security ดี
- วางแผน migrate ก่อน DB ถึง 1 TB
ระยะยาว:
- พิจารณา migrate ไปยัง Approach #3 เมื่อขนาดเริ่มกระทบ performance
ถ้าใช้ Approach #2 (File System) อยู่
ทำทันที:
- ⚠ ตรวจสอบ file system permission
- เข้ารหัส backup tape
- จำกัดสิทธิ์ sysadmin
- เพิ่ม OS-level audit log
ระยะกลาง:
- เพิ่ม encryption layer (Phase 1 ของ Approach #3)
- Effort: 2-4 สัปดาห์ — ไม่ต้อง re-architect ระบบ
ระยะยาว:
- Migrate ไปยัง Approach #3 เต็มรูปแบบ
- เพิ่ม KMS, watermark, behavioral monitoring
ถ้าจะเลือกระบบใหม่
ถามคำถามเหล่านี้ vendor:
- PDF เก็บที่ไหน? (DB / File System / Encrypted Storage)
- ถ้า hard drive ถูกขโมย เปิดเอกสารได้ไหม?
- Sysadmin ของ vendor เข้าถึงเอกสารได้ตรงไหม?
- มี KMS แยก key management ไหม?
- Watermark per-access ทำได้ไหม?
- Behavioral monitoring มีไหม?
- Audit log แก้ไขย้อนหลังไม่ได้ใช่ไหม?
- Backup encrypted ใช่ไหม?
หน่วยงานควรเก็บเอกสารระดับไหน
| ระดับเอกสาร | Approach แนะนำ | เหตุผล |
|---|---|---|
| เอกสารสาธารณะ (ประกาศ, ผลประมูล) | A หรือ B | ไม่ต้องป้องกันสูง |
| เอกสารภายในทั่วไป | C (Phase 1) | encryption + audit |
| สัญญาสำคัญ | C เต็มรูปแบบ | + watermark + DRM |
| เอกสารบอร์ด | C เต็มรูปแบบ | + behavioral monitor |
| ข้อมูลส่วนบุคคล (PII) | C เต็มรูปแบบ | ตามพรบ.PDPA |
| ข้อมูลความมั่นคง | C + HSM-backed | สูงสุด |
ปิดท้าย
การเลือกวิธีเก็บเอกสารใน ERP ไม่ใช่แค่เรื่องเทคนิค แต่คือการตัดสินใจเชิงกลยุทธ์ที่ส่งผลต่อความปลอดภัย ความน่าเชื่อถือ และความยั่งยืนของหน่วยงานในระยะ 10+ ปี
- ทีมงาน Saeree ERP
หน่วยงานที่เลือกเก็บไฟล์ใน file system แบบไม่ encrypt อาจดูประหยัดและสะดวกในวันนี้ — แต่ในวันที่มีเหตุการณ์รั่วไหล หรือ backup tape สูญหาย จะค้นพบว่าค่าใช้จ่ายของการ "ประหยัด" นั้นแพงกว่าที่คิดมาก
ทางออกที่ดีที่สุดคือ Approach #3 (Encrypted Object Storage) ซึ่งให้ทั้งความปลอดภัยและประสิทธิภาพ และสามารถเริ่มจาก Phase 1 (เพิ่ม encryption ใน existing storage) ก่อนแล้วค่อย ๆ ขยายได้
เกี่ยวกับ Saeree ERP
Saeree ERP ของบริษัท Grand Linux Solution ปัจจุบันรองรับการเก็บไฟล์ PDF ทั้งใน database และ file system ตามความเหมาะสมของแต่ละหน่วยงาน และมี roadmap พัฒนาไปสู่ Encrypted Object Storage แบบเต็มรูปแบบในปี 2569 พร้อม Key Management Service และ Per-access Watermark ซึ่งเป็นระดับสูงสุดของมาตรฐานการเก็บเอกสารใน ERP ในปัจจุบัน และจะพัฒนาต่อไปตามมาตรฐานที่ยกระดับขึ้นในอนาคต
ดูบทความที่เกี่ยวข้อง: Checklist ก่อนทำ Paperless: 10 เรื่องสำคัญสำหรับหน่วยงานราชการไทย และ ลายเซ็นดิจิทัล (Digital Signature) คืออะไร? และ 2FA คืออะไร? ยืนยันตัวตน 2 ชั้นทำไมถึงสำคัญ
บทความนี้จัดทำขึ้นจากประสบการณ์การออกแบบระบบ ERP สำหรับหน่วยงานราชการไทย หากต้องการคำปรึกษาเรื่อง document storage ในระบบของคุณ ติดต่อได้ที่ sale@grandlinux.com หรือ 02-347-7730


