สอนสร้างระบบยืมคืนอุปกรณ์ (Google AppSheet) EP6: แก้ด่วน! ป้องกันคนลบข้อมูลมั่วใน AppSheet

จากปัญหาใน EP5 ที่ AppSheet ใครก็กดลบข้อมูลได้! วันนี้ช่องไอทีข้างบ้านจะมาปิดช่องโหว่นั้นด้วยเทคนิคที่โปรกว่าเดิม เราจะสร้างระบบ 'ตรวจสอบบทบาท' แบบเรียลไทม์ เพื่อล็อกสิทธิ์ให้แต่ละคนทำหน้าที่ได้เฉพาะส่วนที่ได้รับอนุญาตเท่านั้น

📌 สิ่งที่คุณจะทำได้ในคลิปนี้:

✅ เทคนิคจำกัดการดึงข้อมูลจาก Google Sheets ให้ดึงมาเฉพาะที่เราต้องการ

✅ สร้าง Slice 'โปรไฟล์ของฉัน' เพื่อแยกข้อมูลเฉพาะตัวเรา

✅ ใช้สูตร SWITCH ควบคุมสิทธิ์ เพิ่ม/แก้ไข/ลบ ในที่เดียว

✅ แยกสิทธิ์เด็ดขาดระหว่าง User, Admin และ Super Admin

สูตรที่ใช้ใน Are updates allowed?: SWITCH(ANY(โปรไฟล์ของฉัน[บทบาท]), "Super Admin", "ALL_CHANGES", "Admin", "ADDS_AND_UPDATES", "READ_ONLY")

#AppSheet #appsheettutorial #googlesheets #NoCode #ไอทีข้างบ้าน

▶️ ช่องทางติดต่อและจ้างงาน (Contact & Hire Me)

=================================================

(1) รับแก้ไขปัญหาการใช้งาน Excel / Word / Google Sheets

(2) รับเขียนสูตร/แก้สูตร และพัฒนาระบบ AppSheet ฐานข้อมูล

(3) รับทำรายงานสรุปข้อมูล/วิเคราะห์ข้อมูล

📲 ติดต่อผ่าน Email: itnextdoor.th@gmail.com

=================================================

@ไอทีข้างบ้าน

1/17 แก้ไขเป็น

... อ่านเพิ่มเติมหลายคนทำแอป “ยืม-คืนอุปกรณ์” บน AppSheet แล้วเจอปัญหาคลาสสิกคือ ผู้ใช้ทั่วไปเข้าไปลบแถวในตาราง “รายการอุปกรณ์” หรือ “ประวัติการยืมคืน” ได้แบบไม่ตั้งใจ (หรือบางทีก็ตั้งใจ) วิธีแก้ที่เวิร์กจริงควรทำ “2 ชั้น” คือ (1) ล็อกการมองเห็นข้อมูล และ (2) ล็อกการแก้ไข/ลบข้อมูล 1) ล็อกการมองเห็นด้วย Security Filter (ระดับตาราง) ถ้าคุณมีตาราง “ทะเบียนผู้ใช้” ที่เก็บอีเมลและบทบาท แนะนำตั้ง Security Filter ให้แต่ละคนเห็นอย่างน้อย “แถวของตัวเอง” ก่อน โดยใช้แนวคิด USEREMAIL() เทียบกับคอลัมน์อีเมล เช่น - ให้ User เห็นเฉพาะแถวตัวเอง: USEREMAIL()=[อีเมล] - ถ้าอยากให้ Admin เห็นทั้งหมด แต่ User เห็นตัวเอง ให้ใช้ IF เช็คบทบาท (แนะนำให้บทบาทมาจากตาราง ไม่ใช่ User settings ลอย ๆ) ตัวอย่างแนวคิดคือ IF([บทบาท]="Admin",TRUE,USEREMAIL()=[อีเมล]) ข้อดีของ Security Filter คือช่วยลดความเสี่ยง “ดูข้อมูลคนอื่น” และยังช่วยให้แอปโหลดเร็วขึ้น เพราะดึงข้อมูลมาเท่าที่จำเป็น 2) ทำ Slice “โปรไฟล์ของฉัน” เพื่ออ้างอิงบทบาทแบบเรียลไทม์ สร้าง Slice จากตารางทะเบียนผู้ใช้ เช่นชื่อ “โปรไฟล์ของฉัน” แล้วตั้ง Row filter condition เป็น USEREMAIL()=[อีเมล] พอได้ Slice นี้แล้ว เวลาเขียนเงื่อนไขสิทธิ์ในตารางอื่น ๆ จะง่ายมาก เพราะเราดึง “บทบาทของผู้ใช้ปัจจุบัน” มาใช้ได้ทันที 3) ล็อกสิทธิ์การเพิ่ม/แก้ไข/ลบด้วย Are updates allowed? ในตารางที่เสี่ยงโดนลบ เช่น “รายการอุปกรณ์” หรือ “ประวัติการยืมคืน” ให้ตั้งค่า Are updates allowed? เป็นสูตรเดียวคุมทั้งหมด เช่นแนวทางนี้: SWITCH(ANY(โปรไฟล์ของฉัน[บทบาท]), "Super Admin","ALL_CHANGES", "Admin","ADDS_AND_UPDATES", "READ_ONLY") ผลลัพธ์คือ Super Admin ทำได้ทุกอย่าง, Admin เพิ่ม/แก้ไขได้แต่ลบไม่ได้, User อ่านอย่างเดียว ลดโอกาสข้อมูลพังแบบทันที 4) ทริคเสริมที่ช่วยกันพลาด - ซ่อนปุ่ม Delete / Action ที่ไม่จำเป็นในแต่ละ Role (แม้ตั้ง Are updates allowed? แล้ว การซ่อนปุ่มช่วยลดการกดผิด) - แยกตาราง “Master” (รายการอุปกรณ์) ออกจากตาราง “Transaction” (ยืม/คืน) แล้วให้ User แก้ได้เฉพาะ Transaction ของตัวเอง - ทดสอบด้วย “Preview app as” หลายบทบาททุกครั้ง ก่อนปล่อยใช้งานจริง ถ้าคุณทำครบทั้ง Security Filter + Slice โปรไฟล์ + SWITCH คุมอัปเดต จะได้ระบบยืมคืนอุปกรณ์ที่ปลอดภัยขึ้นมาก และลดเคสลบข้อมูลมั่ว ๆ ได้แทบหมดเลย

ค้นหา ·
pocare tone up สีไหนดี