本公開總體說來涉及數(shù)據(jù)權(quán)限管理,更具體地講,涉及一種目錄數(shù)據(jù)的訪問權(quán)限管理方法、裝置、存儲介質(zhì)、系統(tǒng)和程序產(chǎn)品。
背景技術(shù):
1、數(shù)據(jù)時(shí)代,很多企業(yè)都有數(shù)據(jù)處理的需求,需要把企業(yè)的各種數(shù)據(jù)資源有效地組織起來。因此,數(shù)據(jù)平臺得到了越來越廣泛的應(yīng)用。
2、很多數(shù)據(jù)平臺上的數(shù)據(jù)是按目錄結(jié)構(gòu)組織的,并且企業(yè)一般有按用戶劃分訪問權(quán)限進(jìn)行數(shù)據(jù)訪問的需求。因此,在設(shè)計(jì)上,要求不同的用戶對不同的數(shù)據(jù)有自身對應(yīng)的訪問權(quán)限,同時(shí)要支持按目錄的權(quán)限控制。
3、當(dāng)前一般的實(shí)現(xiàn)方案是對于目錄樹中的每一個(gè)節(jié)點(diǎn),都有一條數(shù)據(jù)狀態(tài)標(biāo)識記錄表示某個(gè)用戶是否有權(quán)訪問。如果節(jié)點(diǎn)對應(yīng)該用戶的狀態(tài)標(biāo)識為true則可以訪問,否則不可訪問。修改訪問權(quán)限的時(shí)候也只需要修改該節(jié)點(diǎn)及其下層節(jié)點(diǎn)的狀態(tài)標(biāo)識即可。該方案的問題是,如果想要對某個(gè)下層包含很多數(shù)據(jù)節(jié)點(diǎn)的目錄節(jié)點(diǎn),授權(quán)某用戶的訪問,則需要為下層所有節(jié)點(diǎn)都建立一條對應(yīng)數(shù)據(jù)記錄,操作比較慢,并且會占用比較大的存儲空間。
技術(shù)實(shí)現(xiàn)思路
1、本公開提供一種目錄數(shù)據(jù)的訪問權(quán)限管理方法、裝置、存儲介質(zhì)、系統(tǒng)和程序產(chǎn)品,用于解決上述問題中的至少一個(gè)。
2、根據(jù)本公開的一方面,提供一種目錄數(shù)據(jù)的訪問權(quán)限管理方法,所述目錄數(shù)據(jù)包括多層次的樹狀節(jié)點(diǎn),每個(gè)用戶對所述目錄數(shù)據(jù)具有獨(dú)立的訪問權(quán)限,同一用戶對任意節(jié)點(diǎn)的訪問權(quán)限被配置為默認(rèn)繼承該用戶對該節(jié)點(diǎn)的父節(jié)點(diǎn)的訪問權(quán)限,所述訪問權(quán)限管理方法包括:響應(yīng)于指定用戶對指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,確定所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限,其中,所述指定用戶對所述指定節(jié)點(diǎn)的全部子節(jié)點(diǎn)的訪問權(quán)限基于默認(rèn)配置而與所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限相同。
3、可選地,所述目錄數(shù)據(jù)的頂層節(jié)點(diǎn)被配置為默認(rèn)可訪問;或所述目錄數(shù)據(jù)的頂層節(jié)點(diǎn)被配置為默認(rèn)不可訪問。
4、可選地,所述訪問權(quán)限管理方法還包括:響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,查找所述指定節(jié)點(diǎn)的所有被設(shè)置訪問權(quán)限的父節(jié)點(diǎn)中與所述訪問權(quán)限設(shè)置請求對應(yīng)的訪問權(quán)限相反的節(jié)點(diǎn),將查找到的節(jié)點(diǎn)標(biāo)記為不完全節(jié)點(diǎn),所述不完全節(jié)點(diǎn)是與子節(jié)點(diǎn)的訪問權(quán)限不完全相同的節(jié)點(diǎn)。
5、可選地,所述訪問權(quán)限管理方法還包括:響應(yīng)于新建節(jié)點(diǎn)請求,創(chuàng)建新節(jié)點(diǎn);查找所述新節(jié)點(diǎn)的所有被設(shè)置訪問權(quán)限的父節(jié)點(diǎn)中層級最低的一個(gè)父節(jié)點(diǎn),記為參考父節(jié)點(diǎn);在所述參考父節(jié)點(diǎn)為所述不完全節(jié)點(diǎn)的情況下,將所述指定用戶對所述新節(jié)點(diǎn)的訪問權(quán)限配置為與所述指定用戶對所述參考父節(jié)點(diǎn)的訪問權(quán)限相反。
6、可選地,所述訪問權(quán)限設(shè)置請求包括第一請求和第二請求,所述第一請求和所述第二請求中的一個(gè)用于將訪問權(quán)限設(shè)置為可訪問,所述第一請求和所述第二請求中的另一個(gè)用于將訪問權(quán)限設(shè)置為不可訪問;所述目錄數(shù)據(jù)中的每個(gè)節(jié)點(diǎn)均配置有與用戶相關(guān)聯(lián)的訪問標(biāo)識,所述訪問標(biāo)識用于表示相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)的訪問權(quán)限,所述訪問標(biāo)識的取值范圍包括第一不完全值和第二不完全值中的至少一個(gè)以及第一完全值、第二完全值和第三值;其中,所述第一不完全值用于表示相應(yīng)節(jié)點(diǎn)為所述不完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第一請求相對應(yīng)的訪問權(quán)限;所述第二不完全值用于表示相應(yīng)節(jié)點(diǎn)為所述不完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第二請求相對應(yīng)的訪問權(quán)限;所述第一完全值用于表示相應(yīng)節(jié)點(diǎn)為完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第一請求相對應(yīng)的訪問權(quán)限,所述完全節(jié)點(diǎn)是與子節(jié)點(diǎn)的訪問權(quán)限完全相同的節(jié)點(diǎn);所述第二完全值用于表示相應(yīng)節(jié)點(diǎn)為所述完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第二請求相對應(yīng)的訪問權(quán)限;所述第三值用于表示相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)的訪問權(quán)限為繼承該用戶對該節(jié)點(diǎn)的父節(jié)點(diǎn)的訪問權(quán)限,所述第三值是所述訪問標(biāo)識的默認(rèn)值。
7、可選地,所述第一請求用于將訪問權(quán)限設(shè)置為全局默認(rèn)權(quán)限,所述全局默認(rèn)權(quán)限為可訪問或不可訪問,其中,所述響應(yīng)于指定用戶對指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,確定所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限,包括:響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的所述第二請求,將所述指定節(jié)點(diǎn)的與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識設(shè)置為所述第二完全值,以確定所述指定用戶對所述指定節(jié)點(diǎn)及其全部子節(jié)點(diǎn)的訪問權(quán)限與所述全局默認(rèn)權(quán)限不同。
8、可選地,所述訪問標(biāo)識的取值范圍不包括所述第一不完全值,所述響應(yīng)于指定用戶對指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,確定所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限,還包括:響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的所述第一請求,在所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不為所述第一完全值的情況下,將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為或保持為所述第三值,自所述指定節(jié)點(diǎn)向上查找與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不是所述第三值的最近一個(gè)父節(jié)點(diǎn),若查找到的父節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不是所述第一完全值,則將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第一完全值。
9、可選地,所述查找所述指定節(jié)點(diǎn)的所有被設(shè)置訪問權(quán)限的父節(jié)點(diǎn)中與所述訪問權(quán)限設(shè)置請求對應(yīng)的訪問權(quán)限相反的節(jié)點(diǎn),將查找到的節(jié)點(diǎn)標(biāo)記為不完全節(jié)點(diǎn),包括:在將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第一完全值的情況下,查找所述指定節(jié)點(diǎn)的所有父節(jié)點(diǎn)中與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識為所述第二完全值的父節(jié)點(diǎn),將查找到的父節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第二不完全值。
10、可選地,所述全局默認(rèn)權(quán)限為不可訪問。
11、可選地,所述訪問權(quán)限管理方法還包括:響應(yīng)于目標(biāo)用戶對目標(biāo)節(jié)點(diǎn)的訪問權(quán)限獲取請求,在所述目標(biāo)節(jié)點(diǎn)記錄有與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的情況下,根據(jù)記錄確定所述目標(biāo)用戶對所述目標(biāo)節(jié)點(diǎn)的訪問權(quán)限,在所述目標(biāo)節(jié)點(diǎn)未記錄與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的情況下,自所述目標(biāo)節(jié)點(diǎn)向上查找記錄有與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的最近一個(gè)父節(jié)點(diǎn),將所述目標(biāo)用戶對查找到的父節(jié)點(diǎn)的訪問權(quán)限確定為所述目標(biāo)用戶對所述目標(biāo)節(jié)點(diǎn)的訪問權(quán)限。
12、根據(jù)本公開的另一方面,提供一種目錄數(shù)據(jù)的訪問權(quán)限管理裝置,所述目錄數(shù)據(jù)包括多層次的樹狀節(jié)點(diǎn),每個(gè)用戶對所述目錄數(shù)據(jù)具有獨(dú)立的訪問權(quán)限,同一用戶對任意節(jié)點(diǎn)的訪問權(quán)限被配置為默認(rèn)繼承該用戶對該節(jié)點(diǎn)的父節(jié)點(diǎn)的訪問權(quán)限,所述訪問權(quán)限管理裝置包括:確定單元,被配置為響應(yīng)于指定用戶對指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,確定所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限,其中,所述指定用戶對所述指定節(jié)點(diǎn)的全部子節(jié)點(diǎn)的訪問權(quán)限基于默認(rèn)配置而與所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限相同。
13、可選地,所述目錄數(shù)據(jù)的頂層節(jié)點(diǎn)被配置為默認(rèn)可訪問;或所述目錄數(shù)據(jù)的頂層節(jié)點(diǎn)被配置為默認(rèn)不可訪問。
14、可選地,所述訪問權(quán)限管理裝置還包括:查找單元,被配置為響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的訪問權(quán)限設(shè)置請求,查找所述指定節(jié)點(diǎn)的所有被設(shè)置訪問權(quán)限的父節(jié)點(diǎn)中與所述訪問權(quán)限設(shè)置請求對應(yīng)的訪問權(quán)限相反的節(jié)點(diǎn),將查找到的節(jié)點(diǎn)標(biāo)記為不完全節(jié)點(diǎn),所述不完全節(jié)點(diǎn)是與子節(jié)點(diǎn)的訪問權(quán)限不完全相同的節(jié)點(diǎn)。
15、可選地,所述訪問權(quán)限管理裝置還包括:創(chuàng)建單元,被配置為響應(yīng)于新建節(jié)點(diǎn)請求,創(chuàng)建新節(jié)點(diǎn);參考單元,被配置為查找所述新節(jié)點(diǎn)的所有被設(shè)置訪問權(quán)限的父節(jié)點(diǎn)中層級最低的一個(gè)父節(jié)點(diǎn),記為參考父節(jié)點(diǎn);配置單元,被配置為在所述參考父節(jié)點(diǎn)為所述不完全節(jié)點(diǎn)的情況下,將所述指定用戶對所述新節(jié)點(diǎn)的訪問權(quán)限配置為與所述指定用戶對所述參考父節(jié)點(diǎn)的訪問權(quán)限相反。
16、可選地,所述訪問權(quán)限設(shè)置請求包括第一請求和第二請求,所述第一請求和所述第二請求中的一個(gè)用于將訪問權(quán)限設(shè)置為可訪問,所述第一請求和所述第二請求中的另一個(gè)用于將訪問權(quán)限設(shè)置為不可訪問;所述目錄數(shù)據(jù)中的每個(gè)節(jié)點(diǎn)均配置有與用戶相關(guān)聯(lián)的訪問標(biāo)識,所述訪問標(biāo)識用于表示相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)的訪問權(quán)限,所述訪問標(biāo)識的取值范圍包括第一不完全值和第二不完全值中的至少一個(gè)以及第一完全值、第二完全值和第三值;其中,所述第一不完全值用于表示相應(yīng)節(jié)點(diǎn)為所述不完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第一請求相對應(yīng)的訪問權(quán)限;所述第二不完全值用于表示相應(yīng)節(jié)點(diǎn)為所述不完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第二請求相對應(yīng)的訪問權(quán)限;所述第一完全值用于表示相應(yīng)節(jié)點(diǎn)為完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第一請求相對應(yīng)的訪問權(quán)限,所述完全節(jié)點(diǎn)是與子節(jié)點(diǎn)的訪問權(quán)限完全相同的節(jié)點(diǎn);所述第二完全值用于表示相應(yīng)節(jié)點(diǎn)為所述完全節(jié)點(diǎn),并且相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)具備與所述第二請求相對應(yīng)的訪問權(quán)限;所述第三值用于表示相應(yīng)用戶對相應(yīng)節(jié)點(diǎn)的訪問權(quán)限為繼承該用戶對該節(jié)點(diǎn)的父節(jié)點(diǎn)的訪問權(quán)限,所述第三值是所述訪問標(biāo)識的默認(rèn)值。
17、可選地,所述第一請求用于將訪問權(quán)限設(shè)置為全局默認(rèn)權(quán)限,所述全局默認(rèn)權(quán)限為可訪問或不可訪問,所述確定單元還被配置為響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的所述第二請求,將所述指定節(jié)點(diǎn)的與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識設(shè)置為所述第二完全值,以確定所述指定用戶對所述指定節(jié)點(diǎn)及其全部子節(jié)點(diǎn)的訪問權(quán)限與所述全局默認(rèn)權(quán)限不同。
18、可選地,所述訪問標(biāo)識的取值范圍不包括所述第一不完全值,所述確定單元還被配置為響應(yīng)于所述指定用戶對所述指定節(jié)點(diǎn)的所述第一請求,在所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不為所述第一完全值的情況下,將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為或保持為所述第三值,自所述指定節(jié)點(diǎn)向上查找與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不是所述第三值的最近一個(gè)父節(jié)點(diǎn),若查找到的父節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識不是所述第一完全值,則將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第一完全值。
19、可選地,所述查找單元還被配置為在將所述指定節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第一完全值的情況下,查找所述指定節(jié)點(diǎn)的所有父節(jié)點(diǎn)中與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識為所述第二完全值的父節(jié)點(diǎn),將查找到的父節(jié)點(diǎn)與所述指定用戶相關(guān)聯(lián)的訪問標(biāo)識修改為所述第二不完全值。
20、可選地,所述全局默認(rèn)權(quán)限為不可訪問。
21、可選地,所述訪問權(quán)限管理裝置還包括:獲取單元,被配置為響應(yīng)于目標(biāo)用戶對目標(biāo)節(jié)點(diǎn)的訪問權(quán)限獲取請求,在所述目標(biāo)節(jié)點(diǎn)記錄有與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的情況下,根據(jù)記錄確定所述目標(biāo)用戶對所述目標(biāo)節(jié)點(diǎn)的訪問權(quán)限,在所述目標(biāo)節(jié)點(diǎn)未記錄與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的情況下,自所述目標(biāo)節(jié)點(diǎn)向上查找記錄有與所述目標(biāo)用戶相關(guān)的訪問權(quán)限的最近一個(gè)父節(jié)點(diǎn),將所述目標(biāo)用戶對查找到的父節(jié)點(diǎn)的訪問權(quán)限確定為所述目標(biāo)用戶對所述目標(biāo)節(jié)點(diǎn)的訪問權(quán)限。
22、根據(jù)本公開的另一方面,提供一種存儲指令的計(jì)算機(jī)可讀存儲介質(zhì),其中,當(dāng)所述指令被至少一個(gè)計(jì)算裝置運(yùn)行時(shí),促使所述至少一個(gè)計(jì)算裝置執(zhí)行如上所述的目錄數(shù)據(jù)的訪問權(quán)限管理方法。
23、根據(jù)本公開的另一方面,提供一種包括至少一個(gè)計(jì)算裝置和至少一個(gè)存儲指令的存儲裝置的系統(tǒng),其中,所述指令在被所述至少一個(gè)計(jì)算裝置運(yùn)行時(shí),促使所述至少一個(gè)計(jì)算裝置執(zhí)行如上所述的目錄數(shù)據(jù)的訪問權(quán)限管理方法。
24、根據(jù)本公開的另一方面,提供一種計(jì)算機(jī)程序產(chǎn)品,包括指令,其中,所述指令在被至少一個(gè)計(jì)算裝置運(yùn)行時(shí),促使所述至少一個(gè)計(jì)算裝置執(zhí)行如上所述的目錄數(shù)據(jù)的訪問權(quán)限管理方法。
25、根據(jù)本公開示例性實(shí)施例的目錄數(shù)據(jù)的訪問權(quán)限管理方法、裝置、存儲介質(zhì)、系統(tǒng)和程序產(chǎn)品,通過配置默認(rèn)的權(quán)限繼承制度,默認(rèn)設(shè)置為子節(jié)點(diǎn)繼承父節(jié)點(diǎn)的訪問權(quán)限,可以在少量占用存儲空間的情況下實(shí)現(xiàn)訪問權(quán)限的控制管理,支持目錄數(shù)據(jù)的訪問權(quán)限控制。同時(shí),在修改訪問權(quán)限時(shí),可以僅修改少量節(jié)點(diǎn)的訪問權(quán)限,從而縮短權(quán)限修改耗時(shí),解決了修改多條數(shù)據(jù)記錄造成的耗時(shí)過長問題。
26、將在接下來的描述中部分闡述本公開總體構(gòu)思另外的方面和/或優(yōu)點(diǎn),還有一部分通過描述將是清楚的,或者可以經(jīng)過本公開總體構(gòu)思的實(shí)施而得知。