今日要學習的是理解「授權(Authorization)」的概念,登入後並不代表可以存取所有資料,必須根據角色與權限控制存取範圍。
一、理論重點
二、案例分享
過去英國國民保健署(NHS)內部發生多起醫護人員未經授權查閱病歷的事件,受害對象包括知名明星與政治人物。這些員工利用自身系統存取權限,私下查看了病人的敏感醫療資料,甚至部分資料可能外流。事件曝光後引起輿論強烈關注,NHS 面臨信任危機。為了防止類似事件再次發生,NHS 進行了全面的制度改革,包括角色權限分級、存取日誌監控、多因素驗證以及教育訓練。
三、簡單程式示範
# 模擬病歷資料庫
patient_records = {
"PatientA": "糖尿病治療紀錄",
"PatientB": "高血壓治療紀錄"
}
# 醫師與可存取的病人列表
doctor_access = {
"Jason": ["PatientA"],
"Bill": ["PatientB"]
}
def query_record(doctor, patient):
if patient in doctor_access.get(doctor, []):
print(f"醫師 {doctor} 查詢 {patient}:{patient_records[patient]}")
else:
print(f"醫師 {doctor} 無權限查詢 {patient} 的紀錄")
# 測試流程
query_record("Jason", "PatientA") # 有權限
query_record("Bill", "PatientB") # 沒有權限
這段延續昨天,昨天登入驗證後,今天看醫生有無權限查詢某病人的資料。執行結果如下