ประเภทการแจงนับ (Enumeration Type) สำหรับกำหนดประเภทการควบคุมการเข้าถึงข้อมูล ใช้ในการพัฒนาตัวเชื่อมต่อ Power Query แบบกำหนดเอง
=AccessControlKind.Allow | AccessControlKind.Deny
=AccessControlKind.Allow | AccessControlKind.Deny
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Allow | Enumeration Value | Optional | ค่าที่ใช้เพื่อระบุการอนุญาต – ยินยอมให้เข้าถึงข้อมูล | |
| Deny | Enumeration Value | Optional | ค่าที่ใช้เพื่อระบุการปฏิเสธ – ไม่อนุญาติให้เข้าถึงข้อมูล |
let MyAccessControl = AccessControlKind.Allow in if MyAccessControl = AccessControlKind.Allow then "ยินยอม" else "ปฏิเสธ"let
MyAccessControl = AccessControlKind.Allow
in
if MyAccessControl = AccessControlKind.Allow then "ยินยอม" else "ปฏิเสธ"
"ยินยอม"
let Users = {"Alice", "Bob", "Charlie"}, AccessRules = Table.FromRecords( List.Transform( Users, each [User = _, AccessLevel = AccessControlKind.Allow] ) ) in A…let
Users = {"Alice", "Bob", "Charlie"},
AccessRules = Table.FromRecords(
List.Transform(
Users,
each [User = _, AccessLevel = AccessControlKind.Allow]
)
)
in
AccessRules
ตาราง 3 แถว: Alice, Bob, Charlie ทั้งหมด Allow
let UserRole = "Admin", AccessLevel = if UserRole = "Admin" then AccessControlKind.Allow else AccessControlKind.Deny in AccessLevellet
UserRole = "Admin",
AccessLevel = if UserRole = "Admin" then AccessControlKind.Allow else AccessControlKind.Deny
in
AccessLevel
AccessControlKind.Allow
let Controls = {AccessControlKind.Allow, AccessControlKind.Allow, AccessControlKind.Deny, AccessControlKind.Allow}, AllowCount = List.Count(List.Select(Controls…let
Controls = {AccessControlKind.Allow, AccessControlKind.Allow, AccessControlKind.Deny, AccessControlKind.Allow},
AllowCount = List.Count(List.Select(Controls, each _ = AccessControlKind.Allow)),
DenyCount = List.Count(List.Select(Controls, each _ = AccessControlKind.Deny))
in
"Allow: " & Text.From(AllowCount) & ", Deny: " & Text.From(DenyCount)
"Allow: 3, Deny: 1"
ผมจะอธิบายให้ง่าย Allow คือ “ยินยอม” ให้เข้าถึงข้อมูลได้ ส่วน Deny คือ “ปฏิเสธ” ไม่ให้เข้าถึง จากประสบการณ์ผม ต้องเลือกให้ถูกตามสถานการณ์จึงจะปลอดภัย
ผมแนะนำให้ใช้ if…then…else หรือเปรียบเทียบกับ AccessControlKind.Allow โดยตรง เช่น `if MyControl = AccessControlKind.Allow then…` ส่วนตัวผม มักใช้วิธีนี้เวลาต้องกำหนดเงื่อนไข
ไม่มีครับ มีแค่ 2 ค่า Allow และ Deny เท่านั้น ซึ่งตามประสบการณ์ผม เพียงพอสำหรับการควบคุมการเข้าถึงในกรณีส่วนใหญ่
AccessControlKind เป็นประเภทการแจงนับในการนิยามประเภทของการควบคุมการเข้าถึง (Access Control Kind) ซึ่งใช้สำหรับการกำหนดสิทธิ์การเข้าถึงในตัวเชื่อมต่อข้อมูลแบบกำหนดเอง ประกอบด้วยค่าต่างๆ เช่น Allow และ Deny ที่ช่วยให้ผมสามารถกำหนดว่าใครสามารถเข้าถึงข้อมูลได้บ้าง
ที่เจ๋งคือ ในการสร้างตัวเชื่อมต่อที่ปลอดภัย AccessControlKind ทำให้ผมสามารถระบุสิทธิ์ได้อย่างชัดเจนและเป็นระเบียบ ไม่ต้องสร้างสัญลักษณ์หรือค่าใดๆ ด้วยตนเองเลย
ส่วนตัวผม ใช้ AccessControlKind เมื่อต้องการสร้างตัวเชื่อมต่อสำหรับ API ที่มีความเป็นส่วนตัวสูง โดยต้องกำหนดว่าอะไรคือ Allow และอะไรคือ Deny เพื่อให้ผู้ใช้เข้าใจข้อกำหนดการเข้าถึง 😎