salesforce裏對於權限的控制非常詳盡,能夠根據設定,從各個方面對數據進行控制。
1.對於Object本身的控制,這個控制是通過Profiles,Permission Sets,來做,可以控制用戶是否可以對Object進行[讀,寫,修改,刪除],以及控制Object裏的每個項目的[非可見,只讀,可寫]。
2.對於Object裏的Record來講,是通過以下幾種設定方法來控制。
a.Profiles
可以對一個Object裏的所有記錄進行View all,以及Modify all設定,一旦設定,便對這個Object裏的所有數據具有了查看,或者修改的權限。
b.Permission Sets
這個設定其實是對Profiles設定的一個補充,設定的方法一樣,但是可以只把設定賦予單個用戶。
c.Organization-Wide Defaults
這個設定是對於組織內所有用戶的一個普遍設定,由於這個設定比較泛廣,所以設定需要謹慎,要按照對組織內所有用戶最嚴格的那個進行設定,比如,該Object只要有一個人不允許看,就必須設爲Private。
d.Role Hierarchy
每個組織都可以設定一個Role Tree,形成一個繼承關係,那麼賦予一個role的用戶,可以看到,這個role一下,所有role所賦予用戶可看到和可編輯的數據。
e.Sharing Rules
1.把owner是某個group或者role的recode賦予,某個group或role的用戶讀,或者讀寫的權限。
2.把符合某些條件的recode賦予,某個group或role的用戶讀,或者讀寫的權限。
3.把單獨一個recode賦予,某個group或role的用戶,或者一個單獨的用戶,讀,或者讀寫的權限。
另外,這裏面的權限控制也不是完全獨立的,比如對於Object的權限控制,需要一下設定
查看 | 創建 | 編輯 | 刪除 | 查看所有 | 修改所有 | |
查看 | - | X | X | X | X | X |
創建 | O | - | X | X | X | X |
編輯 | O | X | - | X | X | X |
刪除 | O | X | O | - | X | X |
查看所有 | O | X | X | X | - | X |
修改所有 | O | X | O | O | O | - |
另外對於Profile中Field-Level Security的設定,當一個Field是必須項的時候,這個Field在所有的profile裏都是一個可讀寫的,不允許修改。
對於一條記錄,是否有可讀(可寫也是一樣,只不過每一步檢查的是寫權限)權限,主要通過以下途徑。
1.所屬Profile是否設定Object可讀
否 是
不可讀 2.Owner是不是自己
是 否
可讀 3.是否設定了View All
是 否
可讀 4.Organization-Wide Defaults中是否可讀
是 否
可讀 5.是否屬於Role Hierarchy
是 否
可讀 6.是否屬於Sharing Rules
是 否
可讀 不可讀