本申請涉及數據處理的技術領域,特別是涉及一種云計算環境下數據的訪問方法和一種云計算環境下數據的訪問裝置。
背景技術:
全球正在迎來大數據時代,數據已經成為各國政府和企業高度重視的最具經濟價值的戰略資源。盡管目前大數據存儲和挖掘技術已經逐步成熟,然而,數據孤島的大量存在,制約了數據的流通和變現。大數據最具有想象力的發展方向是將各類數據整合起來,從而提供全方位立體的數據繪圖,力圖從系統的角度了解并重塑用戶模型,數據的“開放性”和“流動性”成為數據掘金的關鍵,因此圍繞數據所有、使用、定價和交易,在業界討論不斷。
在大數據時代,對于數據進行跨組織進行交換、整合,將數據變成商品或者原材料,并在此基礎上進行二次開發后的傳播,以及進行合理控制,現已經出現數據交易系統這些的事物,用以帶動大數據產業繁榮,然而數據交易系統對于數據的授權和訪問,仍然是很多業界人士關心的事情。
目前,雖然在業界中已經出現了數據交易系統,但是仍然存在許多缺點,包括如下幾點:1、對于數據多方關聯授權和二次售賣,導致關系復雜,規模不可控,缺乏有效的管理機制。2、現有技術基本在公有云上,對于私有云上的數據的控制缺乏行之有效的方法。
技術實現要素:
鑒于上述問題,本申請實施例提出了一種克服上述問題或者至少部分地解決上述問題的一種云計算環境下數據的訪問方法和一種云計算環境下數據的訪問裝置。
為了解決上述問題,本申請實施例公開了一種云計算環境下數據的訪問方法,在所述云計算環境下包括一個或多個業務對象空間,所述一個或多個業務對象空間下分別存儲有數據包;
所述的方法包括:
針對某一業務對象空間,接收用戶的數據包訪問請求;所述請求中包括用戶標識;
確定所述請求對應的數據包所屬的業務對象空間;
依據所述所屬的業務對象空間和所述用戶標識為用戶提供數據包。
優選地,所述數據包包括業務對象空間的內部數據包和業務對象空間的外部數據包,所述確定所述請求對應的數據包所屬的業務對象空間的步驟包括:
判斷所述請求對應的數據包是否為當前業務對象空間的數據包;
若是,則將所述請求對應的數據包判定為業務對象空間的內部數據包;
若否,則將所述請求對應的數據包判定為業務對象空間的外部數據包。
優選地,所述一個或多個業務對象空間包括一個或多個業務對象類型,所述一個或多個業務對象空間的數據包具有對應的業務對象類型,針對所述用戶標識和所述業務對象類型設置有第一訪問權限;所述依據所屬的業務對象空間和所述用戶標識為用戶提供數據包的步驟包括:
若所述數據包為業務對象空間的內部數據包,則采用所述用戶標識確定用戶具有第一訪問權限;
確定所述業務對象空間的內部數據包所對應的業務對象類型;
在所述業務對象類型下,采用所述第一訪問權限為用戶業務對象空間的內部數據包。
優選地,所述業務對象類型包括開發類型業務對象和生產類型業務對象,所述開發類型業務對象下的第一訪問權限包括共享型權限和隔離型權限,所述第一訪問權限包括讀、寫和管理;所述在業務對象類型下, 采用所述第一訪問權限為用戶提供業務對象空間的內部數據包的步驟包括:
在所述開發類型業務對象下,若所述用戶的訪問權限為共享型權限,則允許用戶讀/寫所述開發類型業務對象的內部數據包;
在所述開發類型業務對象下,若所述用戶的訪問權限為隔離型權限,則允許用戶讀/寫所述開發類型業務對象的指定內部數據包;
在所述生產類型業務對象下,則允許用戶讀/寫所述開發類型業務對象的內部數據包,但禁止用戶管理所述開發類型業務對象的內部數據包。
優選地,針對所述用戶標識設置有指定訪問權限,所述依據所屬的業務對象空間和所述用戶標識為用戶提供數據包的步驟包括:
若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有指定訪問權限;
采用所述指定訪問權限為用戶提供所述業務對象空間的外部數據包。
優選地,所述業務對象空間的外部數據包中包括指定字段,所述業務對象空間的外部數據包由數據提供方提供,所述采用指定訪問權限為用戶提供所述業務對象空間的外部數據包的步驟包括:
接收針對業務對象空間的外部數據包的字段訪問請求;
采用所述訪問權限發送針對所述字段訪問請求的審批請求至該業務對象空間的外部數據包的數據提供方;
若接收到所述數據提供方發送的,針對所述審批請求的允許訪問該指定字段的反饋,則允許所述用戶訪問外部數據包;
若接收到所述數據提供方發送的,針對所述審批請求的禁止訪問該指定字段的反饋,則禁止所述用戶訪問外部數據包。
優選地,所述業務對象空間的外部數據包設置有對應的主題,針對所述用戶標識、所述主題和/或預置的授權關系表設置有第二訪問權限,所述依據所屬的業務對象空間和所述用戶標識為用戶提供數據包的步驟包括:
若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有第二訪問權限;
采用所述第二訪問權限為用戶提供所述業務對象空間的外部數據包。
本申請實施例還公開了一種云計算環境下數據的訪問裝置,在所述云計算環境下包括一個或多個業務對象空間,所述一個或多個業務對象空間下分別存儲有數據包;
所述的裝置包括:
請求接收模塊,用于針對某一業務對象空間,接收用戶的數據包訪問請求;所述請求中包括用戶標識;
空間確定模塊,用于確定所述請求對應的數據包所屬的業務對象空間;
數據提供模塊,用于依據所述所屬的業務對象空間和所述用戶標識為用戶提供數據包。
優選地,所述數據包包括業務對象空間的內部數據包和業務對象空間的外部數據包,所述空間確定模塊包括:
數據包判斷子模塊,用于判斷所述請求對應的數據包是否為當前業務對象空間的數據包;若是,則調用第一判定子模塊,若否,則調用第二判定子模塊;
第一判定子模塊,用于將所述請求對應的數據包判定為業務對象空間的內部數據包;
第二判定子模塊,用于將所述請求對應的數據包判定為業務對象空間的外部數據包。
優選地,所述一個或多個業務對象空間包括一個或多個業務對象類型,所述一個或多個業務對象空間的數據包具有對應的業務對象類型,針對所述用戶標識和所述業務對象類型設置有第一訪問權限;所述數據提供模塊包括:
第一訪問權限確定子模塊,用于在所述數據包為業務對象空間的內部數據包時,采用所述用戶標識確定用戶具有第一訪問權限;
業務對象類型確定子模塊,用于確定所述業務對象空間的內部數據包所對應的業務對象類型;
第一數據提供子模塊,用于在所述業務對象類型下,采用所述第一訪問權限為用戶業務對象空間的內部數據包。
優選地,所述業務對象類型包括開發類型業務對象和生產類型業務對象,所述開發類型業務對象下的第一訪問權限包括共享型權限和隔離型權限,所述第一訪問權限包括讀、寫和管理;所述第一數據提供子模塊包括:
共享權限提供單元,用于在所述開發類型業務對象下,若所述用戶的訪問權限為共享型權限,則允許用戶讀/寫所述開發類型業務對象的內部數據包;
隔離權限提供單元,用于在所述開發類型業務對象下,若所述用戶的訪問權限為隔離型權限,則允許用戶讀/寫所述開發類型業務對象的指定內部數據包;
限定權限提供單元,用于在所述生產類型業務對象下,則允許用戶讀/寫所述開發類型業務對象的內部數據包,但禁止用戶管理所述開發類型業務對象的內部數據包。
優選地,針對所述用戶標識設置有指定訪問權限,所述數據提供模塊包括:
指定訪問權限確定子模塊,用于在所述數據包為業務對象空間的外部數據包時,采用所述用戶標識確定用戶具有指定訪問權限;
指定數據提供子模塊,用于采用所述指定訪問權限為用戶提供所述業務對象空間的外部數據包。
優選地,所述業務對象空間的外部數據包中包括指定字段,所述業務對象空間的外部數據包由數據提供方提供,所述第二數據提供子模塊包括:
字段訪問請求接收單元,用于接收針對業務對象空間的外部數據包的字段訪問請求;
審批請求發送單元,用于采用所述訪問權限發送針對所述字段訪問請求的審批請求至該業務對象空間的外部數據包的數據提供方;
允許訪問單元,用于在接收到所述數據提供方發送的,針對所述審批請求的允許訪問該指定字段的反饋時,允許所述用戶訪問外部數據包;
禁止訪問單元,用于在接收到所述數據提供方發送的,針對所述審批請求的禁止訪問該指定字段的反饋時,禁止所述用戶訪問外部數據包。
優選地,所述業務對象空間的外部數據包設置有對應的主題,針對所述用戶標識、所述主題和/或預置的授權關系表設置有第二訪問權限,所述數據提供模塊包括:
第二訪問權限確定子模塊,若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有第二訪問權限;
第二數據提供子模塊,用于采用所述第二訪問權限為用戶提供所述業務對象空間的外部數據包。
本申請實施例包括以下優點:
本申請實施例中云計算環境下的數據的授權,在經統一的授權流程后為用戶分配相應的訪問權限,且對于數據的授權可以支持項目空間內,以及跨項目空間的數據授權,破除現有復雜網式的數據權限結構,能夠滿足公有云和私有云的各類需求場景。本申請實施例在用戶需要對于項目空間的數據進行訪問時,根據用戶申請訪問數據的項目空間,以及數據所在的項目空間,確定用戶的訪問權限從而給予用戶相應的訪問服務。
本申請實施例中的項目空間的數據授權分為項目空間內授權和跨項目空間授權。對于項目空間內的數據授權,根據項目空間的業務對象類型針對用戶分配有相應的訪問權限,當用戶訪問項目空間的數據時,根據訪問權限分別為用戶提供相應的訪問服務。對于跨項目空間的數據授權,針對用戶劃分有指定的訪問權限,當用戶訪問項目空間的數據時, 根據訪問權限為用戶提供相應的訪問服務。
本申請實施例在用戶訪問項目空間的數據時,如果訪問的數據是項目空間的敏感數據,那么還可以針對用戶的訪問發送審批請求至數據提供方,最后根據數據提供方的反饋實現對于數據的訪問,可以提高數據的安全性。
附圖說明
圖1是本申請的一種云計算環境下數據的訪問方法實施例的步驟流程圖;
圖2是本申請的一種項目空間內授權的示意圖;
圖3是本申請的一種跨項目空間授權的AA/AB類型的示意圖;
圖4是本申請的一種跨項目空間授權ABC類型的示意圖;
圖5是本申請的一種項目空間的數據授權的整體流程示意圖;
圖6是本申請的一種云計算環境下數據的訪問裝置實施例的結構框圖。
具體實施方式
為使本申請的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
目前,對于云計算環境下數據的授權,一般是在一個封閉的企業環境內,不需要考慮跨組織(項目空間)的數據交換場景,因此,對于數據的授權解決方案相對比較簡單。例如,在大數據分析平臺Hadoop下,只需要為平臺內的每個用戶分配一個Linux賬號,并統一由該平臺的管理員來為Linux賬號授予指定權限,用戶就可以根據該Linux賬號所授予的指定權限對于平臺的數據進行訪問。
目前的解決方案沒有租戶、項目空間的分層概念,因此對于數據的授權沒有跨租戶(項目空間)的概念,數據的授權關系為多對多的復雜關系,沒有進行分層,且全部由管理員來控制。目前并沒有針對跨組織的數據交換場景行之有效的數據授權方案。尤其是面向公有云環境的場 景下,故用戶進行訪問時有可能會造成一定的混亂。
本申請實施例的解決方案是跨租戶(項目空間)的分層管理授權關系,數據提供方和數據使用方可以分別管理自己的數據授權關系,數據提供方關心授權給了哪些租戶,數據使用方關心租戶內授權給了哪些項目空間和哪些項目空間內的成員。本申請實施例能夠基于云計算的數據交易平臺,既能提供計算資源控制,又能提供大數據開放和基于這些數據的開發服務,并支持多方授權交易。本申請實施例中為用戶分配了相應的訪問權限,當用戶在某一項目空間下訪問數據時,將根據用戶所在項目空間,以及用戶訪問的數據所在的項目空間,確定用戶的訪問權限從而為用戶提供相應的訪問服務。
參照圖1,示出了本申請的一種云計算環境下數據的訪問方法實施例的步驟流程圖,在所述云計算環境下可以包括一個或多個業務對象空間,所述一個或多個業務對象空間下可以分別存儲有數據包;
在本申請實施例中,所謂的業務對象空間是指云環境下分布的組織,也可以稱為項目空間,可能是屬于公有云或者屬于私有云,在不同的項目空間下分別存儲有其相應的數據包。其中,公有云支持跨組織進行數據交換的權限控制,對應的是對外數據包,私有云支持對內部用戶的授權場景,對應的是內部數據包。
在項目空間提供數據包的賣家可以稱為數據提供方,數據提供方可以將其項目空間的數據包提供給項目空間的內部成員,或者提供給項目空間的外部成員,被提供數據包的項目空間的外部成員也可以是買家,買家也可以稱為租戶,在數據提供方授權的情形下,租戶還可以將數據包提供給其他的租戶。通常項目空間下的數據包由數據提供方指定的項目管理員進行管理。
為了使本領域技術人員更好地理解本申請實施例,以下對于本申請實施例涉及的數據概念進行介紹。
數據:在本申請實施例中的數據是廣義上的概念,例如表、用戶自 定義函數(例如mapreduce編程模型函數)、數據服務、報表等都屬于數據。
數據包:數據包是若干數據的集合,具體可以包括以下多種類型:
1、內部數據包:項目空間內部使用的數據包,用于項目管理員給該項目空間內部成員授權和使用。
2、對外數據包:項目空間之間使用的數據包,用于租戶項目空間之間授權、數據市場售賣,可進一步細分為:
a)租戶內數據包:租戶在項目空間之間進行授權和使用的數據包;
b)租戶間數據包:租戶在不同項目空間之間進行授權、數據市場售賣的數據包;
c)通過中介代理的數據包:官方租戶(數據交易平臺的租戶)與其他租戶通過數據市場售賣的數據包。
需要注意的是,租戶間數據包一定是在不同項目空間之間的數據包,反之,在不同項目空間之間的數據包則不一定是租戶間數據包,因為一個租戶下可以有多個項目空間,租戶內數據包也可以是跨項目空間進行授權。通過中介代理的數據包其實是租戶間數據包的一種特殊形式,即也屬于跨項目空間之間的數據包,但是授權的方式比較特殊,需要涉及到數據交易平臺、數據提供方、數據使用方這三方。
所述的方法具體可以包括如下步驟:
步驟101,針對某一業務對象空間,接收用戶的數據包訪問請求;所述請求中包括用戶標識;
在具體實現中,用戶標識是指在云環境下的用戶賬號等其他可以用來識別用戶的標識,如果在某一項目空間下接收到數據包訪問請求,那么會首先提取出該訪問請求中的用戶標識,以確認該用戶的身份,從而為該用戶提供相應的訪問服務。
步驟102,確定所述請求對應的數據包所屬的業務對象空間;
在本申請的一種優選實施例中,所述數據包可以包括業務對象空間的內部數據包和業務對象空間的外部數據包,所述步驟102可以包括如下子步驟:
子步驟S11,判斷所述請求對應的數據包是否為當前業務對象空間的數據包;若是,則執行子步驟S12,若否,則執行子步驟S13;
子步驟S12,將所述請求對應的數據包判定為業務對象空間的內部數據包;
子步驟S13,將所述請求對應的數據包判定為業務對象空間的外部數據包。
在具體實現中,用戶可以在通過某一項目空間,訪問該項目空間下的數據包,或者訪問其他項目空間下的數據包。因此,本申請實施例的項目空間在接收到數據包訪問請求后,將進一步確認該請求所要求的數據包是該項目空間的內部數據包,或者是其他項目空間的外部數據包。
步驟103,依據所述所屬的業務對象空間和所述用戶標識為用戶提供數據包。
在本申請實施例中,對于數據的授權場景,可以分為兩種情況,一種是項目空間內授權,另一種是跨項目空間授權。其中,項目空間內授權包括A類型,跨項目空間授權包括AA類型,AB和ABC類型。其中,A類型涉及數據包為內部數據包;AA、AB、ABC這三種類型涉及數據包都為對外數據包。以下對于A,AA,AB和ABC類型三種類型進行介紹。
A類型:分為共享型和隔離型兩種,專指項目空間內的數據授權。
對于A類型而言,自己提供數據包供給內部人員,即項目空間內部使用的數據包,用于項目管理員給該項目空間內部成員授權和使用。
AA類型:涉及兩方授權(租戶內跨項目空間的數據授權)。
AB類型:涉及兩方授權(跨租戶跨項目空間授權)。數據提供方開放數據給其他數據使用方(租戶)使用,租戶購買數據后,可以直接使用全量的數據。
AB類型在數據授權過程只需要兩方,故簡稱為AB類型。較于ABC類型,它的特點是可以獲取全量數據,不過也可以進一步區分為兩類:開發者和生產者都可以獲取全量數據;開發者只能獲取抽樣后的數據, 生產者才能獲取全量數據。數據提供方在售賣數據時可以對此進行選擇。
ABC類型:涉及三方授權(跨租戶跨項目空間代理授權)。官方租戶(數據交易平臺的租戶)開放數據給開發者(租戶)做數據應用,開發者購買數據后,只能得到賣家(數據提供方)進行二次授權的對應的數據,而不能得到全量數據。
為了便于理解,下面舉個例子說明下ABC類型的場景。假設某一數據交易平臺的一個官方租戶,它開放了一份商家主題的數據,如淘寶上所有商家的店鋪流量數據;ISV(Independent Software Vendor,獨立軟體開發商)會為商家開發APP應用,商家會訂購APP進行店鋪經營;那么,不同的ISV來數據交易平臺上購買這份商家店鋪流量數據時,將只能獲取自己APP的訂購商家的店鋪流量數據,另外,若是在開發環境只能獲取抽樣以后的樣本數據。
需要說明的是,AB類型中“全量的數據”是為了區別于ABC類型而言的。參照前面所舉例子,對于ABC類型授權,假設賣家的數據出售表里有100w(萬)行記錄,可能某個買家購買后只能獲取10w條訂購商家的記錄。
另外,對于數據售賣的典型場景,不同的租戶(包括官方租戶)都可以在數據交易平臺上上架數據進行售賣,或者從其他租戶購買數據進行使用。待售賣的數據可以分多個不同的主題,每個主題下又可以有多張表,按照每張表進行數據的購買。上面提及的AA,AB和ABC類型針對的都是某一張數據表的具體不同情景。
在本申請的一種優選實施例中,所述一個或多個業務對象空間可以包括一個或多個業務對象類型,所述一個或多個業務對象空間的數據包可以具有對應的業務對象類型,針對所述用戶標識所述業務對象類型可以設置有第一訪問權限;所述步驟103可以包括如下子步驟:
子步驟S11,若所述數據包為業務對象空間的內部數據包,則采用所述用戶標識確定用戶具有第一訪問權限;
子步驟S12,確定所述業務對象空間的內部數據包所對應的業務對象 類型;
子步驟S13,在所述業務對象類型下,采用所述第一訪問權限為用戶業務對象空間的內部數據包。
在具體實現中,項目空間可以劃分為一個或多個的業務對象類型,在本申請實施例中,根據用戶申請訪問的數據所在的項目空間的業務對象類型,用戶將采用不同的訪問權限對于項目空間的內部數據包進行訪問。
在本申請的一種優選實施例中,所述業務對象類型可以包括開發類型業務對象和生產類型業務對象,所述開發類型業務對象下的用戶訪問權限可以包括共享型權限和隔離型權限,所述第一訪問權限可以包括讀、寫和管理;所述子步驟S13可以包括如下子步驟:
子步驟S13-1,在所述開發類型業務對象下,若所述用戶的訪問權限為共享型權限,則允許用戶讀/寫所述開發類型業務對象的內部數據包;
子步驟S13-2,在所述開發類型業務對象下,若所述用戶的訪問權限為隔離型權限,則允許用戶讀/寫所述開發類型業務對象的指定內部數據包;
子步驟S13-3,在所述生產類型業務對象下,則允許用戶讀/寫所述開發類型業務對象的內部數據包,但禁止用戶管理所述開發類型業務對象的內部數據包。
對于項目空間內授權,參照圖2所示的本申請的一種項目空間內授權的示意圖,在該項目空間分為ODPS(Open Data Processing Service,開放數據處理服務)和DE(Data Engine,數據引擎),項目空間內的一個數據包對應的一個角色(role),這個角色被授權了數據包里中數據(表)的訪問權限(如讀、寫)。
在項目空間內授權的情形,具體可包括如下特征:
(1)項目管理員預先創建好數據包,其中創建數據包可以按項目空間的內部用戶群體,或者數據本身的內聚性來劃分數據包。比如,有數據開發和數據分析師兩類成員,那么可以分別創建不同的數據包:數據 包A可以讀寫項目內的所有表,授權給數據開發人員;數據包B只能讀取項目內的指定表,授權給數據分析人員進行分析。
(2)項目管理員主動把數據包授權給用戶,或者用戶主動申請加入。通常情況下,用戶無需針對單張數據表申請訪問權限。
(3)不管項目空間下數據包內的數據表是否包含敏感字段,都采取整表授權的方式。也即是說,用戶在申請訪問項目空間內的數據包時,不需要一個個字段地勾選數據表來申請訪問。
(4)項目管理員的主要工作只需要創建并維護好數據包,持續地往數據包里面增加、刪除數據表。
在本申請實施例中,對于項目空間內授權情形,由于項目空間的類型可以包括開發類型和生產類型,也就是項目空間下包括開發環境(開發project)和生產環境(生產project),還可以按照類型劃分訪問權限,并且還以在此基礎上進一步劃分訪問權限,例如在開發project下,進一步劃分共享型權限和隔離型權限。
在開發project下,若用戶的訪問權限為共享型權限,允許用戶讀,寫開發project下的數據包;若用戶的訪問權限為隔離型權限,允許用戶讀,寫開發project下指定的數據包。在生產project下,允許用戶讀,寫生產project下的數據包,但禁止用戶管理生產project下的數據包,避免過度授權,從而導致一些誤操作出現的問題。
在本申請實施例中,對于項目空間內授權的情形,用戶可以根據其所分配或申請的訪問權限,去訪問項目空間下的數據包。此外,基于項目空間不同的環境,還可以設置不同的訪問權限。由于項目空間內采用整表授權的方式,因此即使訪問的數據包中包含敏感字段,也無需一個個字段地進行訪問申請。當然,對于一些實在不方便用戶訪問的數據表的敏感字段,也可以設置為只有經過數據提供方的同意才可進行訪問,以提高數據的安全性,本申請實施例對此不加以限制。
在本申請的一種優選實施例中,針對所述用戶標識可以設置有指定訪問權限,所述步驟103可以包括如下子步驟:
子步驟S21,若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有指定訪問權限;
子步驟S22,采用所述指定訪問權限為用戶提供所述業務對象空間的外部數據包。
在本申請的一種優選實施例中,所述業務對象空間的外部數據包中可以包括指定字段,所述業務對象空間的外部數據包可以由數據提供方提供,所述子步驟S22可以包括如下子步驟:
子步驟S22-1,接收針對業務對象空間的外部數據包的字段訪問請求;
子步驟S22-2,采用所述訪問權限發送針對所述字段訪問請求的審批請求至該業務對象空間的外部數據包的數據提供方;
子步驟S22-3,若接收到所述數據提供方發送的,針對所述審批請求的允許訪問該指定字段的反饋,則允許所述用戶訪問外部數據包;
子步驟S22-4,若接收到所述數據提供方發送的,針對所述審批請求的禁止訪問該指定字段的反饋,則禁止所述用戶訪問外部數據包。
對于跨項目空間授權,其授權類型可以包括AA類型,AB類型和ABC類型。對于AA類型和AB類型,參照圖3所示的本申請的一種跨項目空間授權的AA/AB類型的示意圖,對于跨項目空間授權的AA類型和AB類型的情形,具體可包括如下特征:
(1)源project(項目空間)的管理員將數據打包授權給目標project。
(2)目標project的管理員擁有對外來數據表(外來數據包)的管理權。每一個外來數據包都會映射成本項目空間的一個數據包,數據包對內部用戶的授權由目標project的管理員來決定,源數據的owner(數據提供者)不必參與審批,從而減少了管理員的負擔。
(3)如果用戶要申請訪問外來數據表的敏感字段,那么審批流程中加入“源數據owner審批”這個環節。即有敏感字段的外來數據表是否可以被用戶訪問,還需要由源數據owner審批去做一次判斷,以確定是否同意用戶訪問。只有當源數據owner審批為同意用戶訪問,才能將該數據 提供給用戶。
當然,“源數據owner審批”這個環節只是一個補充步驟,不是必須的,也可以默認拒絕用戶訪問敏感字段,或者設置成其他的敏感字段的訪問策略,本申請實施例對此不加以限制。
(4)數據提供方可以追溯查看對外提供的數據表的二次授權情況。即源project給目標project授權后,源project還可以查看目標project對于數據再次授權給其他租戶的授權情況。
AA類型和AB類型的效果:簡化了項目空間之間數據授權關系的蜘蛛網,project與project之間只存在一個數據包,權限和責任的邊界清晰明了。當用戶訪問數據時,在確定其訪問權限后將根據其所分配的權限提供相應的訪問服務。
在本申請的一種優選實施例中,所述業務對象空間的外部數據包可以設置有對應的主題,針對所述用戶標識、所述主題和/或預置的授權關系表可以設置有第二訪問權限,所述步驟103可以包括如下子步驟:
子步驟S31,若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有第二訪問權限;
子步驟S32,采用所述第二訪問權限為用戶提供所述業務對象空間的外部數據包。
對于跨項目空間授權的ABC類型,參照圖4所示的本申請的一種跨項目空間授權的ABC類型的示意圖,在具體實現中,一個項目空間下包括開發環境和生產環境。對于跨項目空間授權的AA類型和AB類型的情形,具體可包括如下特征:
(1)源project的管理員按照數據主題對表進行授權,每個數據主題包含若干張表,每張表對應目標project的一個視圖,因為每個目標project的授權關系是動態變化的,而且一旦申請了數據,即立刻需要使用最近一段時間的數據,因此無法預先創建好。
具體來說,數據主題本身是數據倉庫內對于數據的組織、管理方式,這里數據主題可以方便批量進行數據(表)的授權。比如,有個商家出 售流量主題的數據,那么可以將這個主題下的所有表一次性授權出去。
(2)目標project中的用戶在開發環境訪問樣本數據,在生產環境使用生產數據,但是不能在開發環境訪問到生產數據,可以通過數據血緣追蹤機制來控制。
在本申請實施例中,根據用戶申請訪問數據的項目空間,以及數據所在的項目空間,給予用戶相應的訪問服務。本申請實施例中的項目空間的數據授權分為項目空間內授權和跨項目空間授權,其中,對于項目空間內授權,根據項目空間的類型針對用戶劃分不同的訪問權限,根據訪問權限分別為用戶提供相應的訪問服務。對于跨項目空間授權,針對用戶劃分指定訪問權限,根據訪問權限為用戶提供相應的訪問服務,另外,在用戶訪問項目空間數據時,如果訪問的數據是項目空間的敏感數據,那么還可以針對用戶的訪問發送審批請求至數據提供方,最后根據數據提供方的反饋實現對于數據的訪問,可以提高數據的安全性。
為了使本領域技術人員更好地理解本申請實施例,參照圖5所示的本申請的一種項目空間的數據授權的整體流程示意圖,在本申請實施例中,項目空間的數據授權可以分為項目空間內授權和跨項目空間授權。
一、對于項目空間內授權的情形:
跨項目空間授權包括A類型這種類型。
具體來說,項目空間的類型可以分為開發project和生產project,在本申請實施例中針對不同類型還可以針對用戶設置如下訪問權限:
1、對于開發project:
“共享型”類型下,用戶能讀寫開發環境的所有表。
“隔離型”類型下,用戶只能讀寫自己在開發環境創建的表。
2、對于生產project:
通過自有數據包進行授權時,維護數據包和表的映射關系。
其中,自有數據包指的是管理員對項目空間的內部數據授權。而項目空間的數據又分為開發Project、生產Project。在實際應用中,上面提 到的“共享型”類型和“隔離型”類型指的是多個成員對開發Project中數據的使用方式;而自有數據包專指的是生產Project的數據。
在本申請實施例中,對于數據的授權方式可以分為ACL授權和Policy授權,以下對于ACL授權和Policy授權者兩種授權進行介紹:
(1)ACL授權是一種基于對象的授權。通過ACL授權的權限數據被看做是該對象的一種子資源。只有當對象已經存在時,才能進行ACL授權操作;當對象被刪除時,通過ACL授權的權限數據會被自動刪除。ACL授權支持類似于SQL92定義的GRANT/REVOKE語法,它通過簡單的授權語句來完成對已存在的項目空間對象的授權或撤銷授權。一條ACL授權記錄中主要記錄了以下信息:角色、資源、授權。
例如:
USE test_project;--打開項目空間
ADD USER ALIYUN$alice@aliyun.com;--添加用戶
ADD USER ALIYUN$bob@aliyun.com;--添加用戶
CREATE ROLE worker;--創建角色
GRANT worker TO ALIYUN$alice@aliyun.com;--角色指派
GRANT worker TO ALIYUN$bob@aliyun.com;--角色指派
GRANT CreateInstance,CreateResource,CreateFunction,CreateTable,List ON PROJECT test_project TO ROLE worker;--對角色授權
(2)Policy授權僅是針對較為復雜的授權場景來使用。Policy授權則是一種基于主體的授權。通過Policy授權的權限數據(即訪問策略)被看做是授權主體的一種子資源。只有當主體(用戶或角色)存在時,才能進行Policy授權操作;當主體被刪除時,通過Policy授權的權限數據會被自動刪除。Policy授權使用自定義的一種訪問策略語言來進行授權,允許或禁止主體對項目空間對象的訪問權限。
Policy授權是一種新的授權機制,它主要解決ACL授權機制無法解決的一些復雜授權場景,比如:一次操作對一組對象進行授權,如所有的函數、所有以“taobao”開頭的表。
Policy授權是帶限制條件的授權,如授權只會在指定的時段內才會生效、當請求者從指定的IP地址發起請求時授權才會生效、或者只允許用戶使用SQL(Structured Query Language,結構化查詢語言)(而不允許其它類型的任務Task)來訪問某張表。
Policy授權機制使用訪問策略語言(Access Policy)來描述授權,關于ODPS訪問策略語言的詳細描述,下面給出一個簡單的使用Project Policy授權的應用實例:
場景說明:授權用戶alice@aliyun.com只能在“2013-11-1123:59:59”這個時間點之前、只能從“10.32.180.0~23”這個IP段提交請求,只允許在項目空間test_project中執行CreateInstance,CreateTable和List操作,禁止刪除test_project下的任何表。
例如:
本申請實施例中,對于生產環境生產任務運行的專有賬號,需要能夠使得該專有賬號讀寫生產環境下的所有表,且同時滿足最小權限的原則(如不能擁有管理型操作的權限)。
最小權限原則也是安全設計的基本原則之一。最小權限原則要求系統只授予主體必要的權限,而不要過度授權,這樣能有效地減少系統、網絡、應用、數據庫出錯的機會。比如,在Linux系統中,一種良好的操作習慣是使用普通賬戶登錄,在執行需要root權限的操作時,再通過sudo命令完成。這樣能最大化地降低一些誤操作導致的風險;同時普通賬戶被盜用后,與root帳戶被盜用所導致的后果是完全不同的。
二、對于跨項目空間授權的情形:
跨項目空間授權包括AA類型,AB類型和ABC類型這三種類型。
1、跨項目空間授權(AA/AB)
源project通過將數據打包授權給目標project,源project的管理員創建數據包(package)時,維護數據包和表的映射關系。
目標project的管理員在項目空間內二次授權。
2、跨項目空間授權(ABC)
源project通過view(視圖)將每張需要授權的表授權給目標project。
view創建在目標project中,底層實現需要加入源表和授權關系表,從而實現對表的行級授權。
所謂行級授權是指,在ABC類型下,一張表可能有100w行,而只 能授權給其中的一部分(比如10w行或20w行),因此要結合另一張授權關系表(如某個ISV的APP被哪些商家訂購了),構建view實現只授權滿足指定條件(該行記錄中的商家標識(例如商家ID)包含在APP的訂購商家ID列表中)的行的記錄。
本申請實施例在根據項目空間對于數據授權明晰分層的情形下,當用戶需要訪問項目空間的數據時,可以根據用戶申請訪問數據的項目空間,以及數據所在的項目空間,快速確定用戶的訪問權限從而給予用戶相應的訪問服務。
綜上可以獲知,應用本申請實施例可以達到如下效果:
1)本申請實施例中的統一的授權流程同時滿足公有云和私有云的各類需求場景,在權限確定的情況下,在用戶訪問項目空間下的數據時,將根據用戶訪問權限為用戶提供訪問服務。
2)本申請實施例可以支持項目空間內數據授權,例如A類型,以及項目空間之間數據授權的多種業務類型,例如AA/AB/ABC類型,基于項目空間進行合理分層,破除現有復雜網式的數據權限結構。因此,在用戶訪問項目空間下的數據時,可以快速確定用戶的訪問權限,且不需要項目管理員參與,從而提高了數據交易平臺的處理效率。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作并不一定是本申請實施例所必須的。
參照圖6,示出了本申請的一種云計算環境下數據的訪問裝置實施例的結構框圖,在所述云計算環境下可以包括一個或多個業務對象空間,所述一個或多個業務對象空間下可以分別存儲有數據包;具體可以包括 如下模塊:
請求接收模塊201,用于針對某一業務對象空間,接收用戶的數據包訪問請求;所述請求中包括用戶標識;
空間確定模塊202,用于確定所述請求對應的數據包所屬的業務對象空間;
在本申請的一種優選實施例中,所述數據包包括業務對象空間的內部數據包和業務對象空間的外部數據包,所述空間確定模塊202可以包括如下子模塊:
數據包判斷子模塊,用于判斷所述請求對應的數據包是否為當前業務對象空間的數據包;若是,則調用第一判定子模塊,若否,則調用第二判定子模塊;
第一判定子模塊,用于將所述請求對應的數據包判定為業務對象空間的內部數據包;
第二判定子模塊,用于將所述請求對應的數據包判定為業務對象空間的外部數據包。
數據提供模塊203,用于依據所述所屬的業務對象空間和所述用戶標識為用戶提供數據包。
在本申請的一種優選實施例中,所述一個或多個業務對象空間可以包括一個或多個業務對象類型,所述一個或多個業務對象空間的數據包具有對應的業務對象類型,針對所述用戶標識和所述業務對象類型可以設置有第一訪問權限;所述數據提供模塊203可以包括如下子模塊:
第一訪問權限確定子模塊,用于在所述數據包為業務對象空間的內部數據包時,采用所述用戶標識確定用戶具有第一訪問權限;
業務對象類型確定子模塊,用于確定所述業務對象空間的內部數據包所對應的業務對象類型;
第一數據提供子模塊,用于在所述業務對象類型下,采用所述第一訪問權限為用戶業務對象空間的內部數據包。
在本申請的一種優選實施例中,所述業務對象類型包括開發類型業 務對象和生產類型業務對象,所述開發類型業務對象下的第一訪問權限包括共享型權限和隔離型權限,所述第一訪問權限包括讀、寫和管理;所述第一數據提供子模塊包括:
共享權限提供單元,用于在所述開發類型業務對象下,若所述用戶的訪問權限為共享型權限,則允許用戶讀/寫所述開發類型業務對象的內部數據包;
隔離權限提供單元,用于在所述開發類型業務對象下,若所述用戶的訪問權限為隔離型權限,則允許用戶讀/寫所述開發類型業務對象的指定內部數據包;
限定權限提供單元,用于在所述生產類型業務對象下,則允許用戶讀/寫所述開發類型業務對象的內部數據包,但禁止用戶管理所述開發類型業務對象的內部數據包。
在本申請的一種優選實施例中,針對所述用戶標識設置有指定訪問權限,所述數據提供模塊203可以包括如下子模塊:
指定訪問權限確定子模塊,用于在所述數據包為業務對象空間的外部數據包時,采用所述用戶標識確定用戶具有指定訪問權限;
指定數據提供子模塊,用于采用所述指定訪問權限為用戶提供所述業務對象空間的外部數據包。
在本申請的一種優選實施例中,所述業務對象空間的外部數據包中包括指定字段,所述業務對象空間的外部數據包由數據提供方提供,所述第二數據提供子模塊可以包括如下單元:
字段訪問請求接收單元,用于接收針對業務對象空間的外部數據包的字段訪問請求;
審批請求發送單元,用于采用所述訪問權限發送針對所述字段訪問請求的審批請求至該業務對象空間的外部數據包的數據提供方;
允許訪問單元,用于在接收到所述數據提供方發送的,針對所述審批請求的允許訪問該指定字段的反饋時,允許所述用戶訪問外部數據包;
禁止訪問單元,用于在接收到所述數據提供方發送的,針對所述審 批請求的禁止訪問該指定字段的反饋時,禁止所述用戶訪問外部數據包。
在本申請的一種優選實施例中,所述業務對象空間的外部數據包可以設置有對應的主題,針對所述用戶標識、所述主題和/或預置的授權關系表可以設置有第二訪問權限,所述數據提供模塊203可以包括如下子模塊:
第二訪問權限確定子模塊,若所述數據包為業務對象空間的外部數據包,則采用所述用戶標識確定用戶具有第二訪問權限;
第二數據提供子模塊,用于采用所述第二訪問權限為用戶提供所述業務對象空間的外部數據包。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、 數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非持續性的電腦可讀媒體(transitory media),如調制的數據信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理終端設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理終端設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優選實施例,但本領域內的技術人員 一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種云計算環境下數據的訪問方法和一種云計算環境下數據的訪問裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。