ACL是最先也是最基本的一種訪問控制機制,它的原理很是簡單:每一項資源,都配有一個列表,這個列表記錄的就是哪些用戶能夠對這項資源執行CRUD中的那些操做。當系統試圖訪問這項資源時,會首先檢查這個列表中是否有關於當前用戶的訪問權限,從而肯定當前用戶能否執行相應的操做。總得來講,ACL是一種面向資源的訪問控制模型,它的機制是圍繞「資源」展開的。性能
The relative simplicity of ACLs means they do not need much underlying technological infrastructure to work.因爲ACL的簡單性,使得它幾乎不須要任何基礎設施就能夠完成訪問控制。但同時它的缺點也是很明顯的,因爲須要維護大量的訪問權限列表,ACL在性能上有明顯的缺陷。另外,對於擁有大量用戶與衆多資源的應用,管理訪問控制列表自己就變成很是繁重的工做。spa
RBAC是把用戶按角色進行歸類,經過用戶的角色來肯定用戶可否針對某項資源進行某項操做。RBAC相對於ACL最大的優點就是它簡化了用戶與權限的管理,經過對用戶進行分類,使得角色與權限關聯起來,而用戶與權限變成了間接關聯。RBAC模型使得訪問控制,特別是對用戶的受權管理變得很是簡單和易於維護,所以有普遍的應用。可是它也有自身的缺點,那就是因爲權限是以角色爲載體分配的,若是某一角色下的個別用戶須要進行特別的權限定製,如同加入一些其餘角色的小部分權限或去除當前角色的一些權限時,RBAC就無能爲力了,由於RBAC對權限的分配是角色爲單位的。
除兩上述兩種主要的模型以外,還有包括:基於屬性的訪問控制ABAC和基於策略的訪問控制PBAC等等,由於應用不是很普遍,就不作介紹了。ci