一種用于提供數(shù)據(jù)庫訪問控制的方法、裝置與系統(tǒng)的制作方法
【專利摘要】根據(jù)本發(fā)明的方法與裝置提供了一種針對NoSQL數(shù)據(jù)庫或類似數(shù)據(jù)庫的數(shù)據(jù)訪問請求進行訪問控制的方案。具體地,根據(jù)本發(fā)明,在METADATA節(jié)點2對客戶端的存儲位置及授權請求進行認證并為其生成授權訪問令牌標識、授權訪問令牌與授權訪問令牌的驗證碼,并將授權訪問令牌標識、授權訪問令牌,可選地,還有授權訪問令牌的驗證碼作為訪問控制信息提供給客戶端,從而當客戶端向USffiDATA節(jié)點2請求進行數(shù)據(jù)訪問時,USffiDATA節(jié)點2可以根據(jù)該數(shù)據(jù)訪問請求中的訪問控制信息執(zhí)行數(shù)據(jù)訪問控制。本發(fā)明解決了目前NoSQL數(shù)據(jù)庫或類似數(shù)據(jù)庫存在的無法對數(shù)據(jù)訪問請求進行訪問控制的問題,提高來數(shù)據(jù)庫的安全性。
【專利說明】一種用于提供數(shù)據(jù)庫訪問控制的方法、裝置與系統(tǒng)
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫領域,尤其涉及一種提供數(shù)據(jù)庫訪問控制的技術。
【背景技術】
[0002] 當前的很多數(shù)據(jù)庫,例如NoSQL數(shù)據(jù)庫,幾乎沒有內(nèi)置的安全保護機制。即使可以 在數(shù)據(jù)管理層(如元數(shù)據(jù)管理)執(zhí)行如認證和授權的安全機制,在物理數(shù)據(jù)存儲器中仍無 法進行訪問控制信息的傳遞和執(zhí)行。
[0003] 現(xiàn)有的關系數(shù)據(jù)庫的安全性能不能適用于NoSQL數(shù)據(jù)庫。其原因在于NoSQL缺少 數(shù)據(jù)庫表的組織和定義以及數(shù)據(jù)庫表同其它表的關系以及它們所包含的列(schema),訪問 控制無法在一個表格,一列或一行中單獨執(zhí)行。
[0004] 圖1示出NoSQL數(shù)據(jù)庫的架構圖。如圖1所示示出客戶端與NoSQL數(shù)據(jù)庫系統(tǒng), 其中,客戶端可以為用戶設備(User_Agent)或第三方應用(3rd Party Application), 在 NoSQL 數(shù)據(jù)庫系統(tǒng)包括 USERDATA 節(jié)點 USERDAT_1,USERDATA_2, USERDATA_3,及多級別 METADATA 節(jié)點 METADATA_1,METADATA_2, METADATA_3, SUPER_METADATA,本領域技術人應理 解圖1中所示的各部分的數(shù)量、級別數(shù)僅為示例。
[0005] 在NoSQL數(shù)據(jù)庫系統(tǒng)中,單個文件可以被分成若干分布在集群中的塊,其中, USERDATA節(jié)點存儲文件數(shù)據(jù)塊的;METADATA節(jié)點包含元數(shù)據(jù),和數(shù)據(jù)塊的管理信息,還有 集群中其所管理的USERDATA節(jié)點的列表。一個METADATA節(jié)點管理一個或多個USERDATA節(jié) 點。實施時,可能有幾個級別的METADATA節(jié)點,比如SUPER_METADATA節(jié)點和METADATA節(jié) 點。當用戶設備或第三方應用通過NoSQL數(shù)據(jù)庫訪問某個文件的時候,它們會尋找構成一 個METADTA節(jié)點中的文件的數(shù)據(jù)塊的位置,然后在USERDATA節(jié)點上訪問數(shù)據(jù)塊。若用戶設 備或第三方應用若已經(jīng)知道數(shù)據(jù)塊的位置,則可以直接訪問USERDATA節(jié)點上的數(shù)據(jù)塊。
[0006] 當用戶或第三方應用向METADATA節(jié)點中請求授權訪問文件時,METADATA會在認 證用戶或第三方應用身份后,根據(jù)安全策略,檢查對文件的訪問控制權限(如讀,寫和刪除 等)。
[0007] 然而,當涉及到USERDATA節(jié)點上的后續(xù)數(shù)據(jù)塊訪問時,USERDATA節(jié)點無法進行是 否授權的判斷,從而無法執(zhí)行訪問控制。USERDATA節(jié)點無法檢查訪問的權限并獨立對此做 出判斷的原因在于,USERDATA節(jié)點僅能管理那些沒有文件概念的數(shù)據(jù)塊。另外,一些NoSQL 數(shù)據(jù)庫,比如Google BigTable,并不對其數(shù)據(jù)庫的訪問進行任何訪問控制。一個未經(jīng)授權 的用戶只要知道數(shù)據(jù)塊的位置或者block ID,就有可能訪問該數(shù)據(jù)塊。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的是為NoSQL數(shù)據(jù)庫或類似數(shù)據(jù)庫提供訪問控制的方案。具體地,通 過在外部數(shù)據(jù)管理層或相關應用層執(zhí)行數(shù)據(jù)訪問的授權驗證,可以為NoSQL數(shù)據(jù)庫或類似 數(shù)據(jù)提供數(shù)據(jù)訪問控制的安全機制,從而可以拒絕未經(jīng)授權用戶的訪問。
[0009] 根據(jù)本發(fā)明的第一實施例,提供了一種用于對數(shù)據(jù)訪問進行管理的方法,其中,包 括以下步驟:
[0010]-接收來自客戶端的存儲位置及授權請求,用于請求待訪問文件的數(shù)據(jù)塊的存儲 位置和相應的授權訪問控制信息;
[0011]-基于所述存儲位置及授權請求確定待訪問數(shù)據(jù)塊的存儲位置;
[0012]-基于所述存儲位置與授權請求對該存儲位置及授權請求進行認證;
[0013]-當對該存儲位置及授權請求的認證通過,生成基于該存儲位置及授權請求的授 權訪問控制信息;
[0014] -將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的授權訪問控制信息提供給所述客 戶端。
[0015] 優(yōu)選地,該方法還包括:
[0016]-接收來自數(shù)據(jù)存儲裝置的驗證請求,其中,該驗證請求用于請求對來自客戶端的 數(shù)據(jù)訪問請求進行驗證;
[0017] -根據(jù)從所述驗證請求中提取出的來自該客戶端的授權訪問控制信息,對該驗證 請求進行驗證;
[0018] -當驗證通過,向所述數(shù)據(jù)存儲裝置發(fā)送驗證通過消息。
[0019] 根據(jù)本發(fā)明的第二實施例,提供了 -接收來自客戶端的數(shù)據(jù)訪問請求,該數(shù)據(jù)訪 問請求包括待訪問的數(shù)據(jù)塊的存儲位置以及對應的授權訪問控制信息;
[0020] -從來自客戶端的數(shù)據(jù)訪問請求中獲取待訪問數(shù)據(jù)塊的存儲位置信息、授權訪問 控制信息及訪問控制權限;
[0021] -根據(jù)從所述數(shù)據(jù)訪問請求中提取出的授權訪問控制信息,對該數(shù)據(jù)訪問請求進 行驗證;
[0022] -當驗證通過,根據(jù)該數(shù)據(jù)訪問請求中的待訪問數(shù)據(jù)塊的存儲位置與訪問控制權 限來對所述待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
[0023] 根據(jù)本發(fā)明的第三實施例,提供了一種用于對數(shù)據(jù)訪問進行管理的數(shù)據(jù)庫管理裝 置,其中,包括:
[0024] 第一接收裝置(201),用于接收來自客戶端的存儲位置及授權請求,用于請求待訪 問文件的數(shù)據(jù)塊的存儲位置和相應的授權訪問控制信息;
[0025] 確定裝置,用于基于所述存儲位置及授權請求來確定待訪問數(shù)據(jù)塊的存儲位置;
[0026] 認證裝置(202),用于基于所述存儲位置與授權請求對該存儲位置及授權請求進 行認證;
[0027] 授權生成裝置(203),用于當對該存儲位置與授權請求的認證通過,生成基于該存 儲位置及授權請求的授權訪問控制信息;
[0028] 第一響應裝置(204),用于將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的授權訪 問控制信息提供給所述客戶端。
[0029] 優(yōu)選地,該數(shù)據(jù)庫管理裝置還包括:
[0030] 第二接收裝置,用于接收來自數(shù)據(jù)存儲裝置的驗證請求,其中,該驗證請求用于請 求對來自客戶端的數(shù)據(jù)訪問請求進行驗證;
[0031] 第一驗證裝置,用于根據(jù)從所述驗證請求中提取出的來自該客戶端的授權訪問控 制信息,對該驗證請求進行驗證;
[0032] 第三響應裝置,用于當驗證通過,向所述數(shù)據(jù)存儲裝置發(fā)送驗證通過消息。
[0033] 根據(jù)本發(fā)明的第四實施例,提供了一種用于提供數(shù)據(jù)訪問的數(shù)據(jù)存儲裝置,其中, 該方法包括
[0034] 第二接收裝置,用于接收來自客戶端的數(shù)據(jù)訪問請求,該數(shù)據(jù)訪問請求包括待訪 問的數(shù)據(jù)塊的存儲位置以及對應的授權訪問控制信息;
[0035] 獲取裝置,用于從來自客戶端的數(shù)據(jù)訪問請求中獲取待訪問數(shù)據(jù)塊的存儲位置信 息、授權訪問控制信息及訪問控制權限;
[0036] 第二驗證裝置,用于根據(jù)從所述數(shù)據(jù)訪問請求中提取出的授權訪問控制信息,對 該數(shù)據(jù)訪問請求進行驗證;
[0037] 訪問操作裝置,用于當驗證通過,根據(jù)該數(shù)據(jù)訪問請求中的待訪問數(shù)據(jù)塊的存儲 位置與訪問控制權限來對所述待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
[0038] 根據(jù)本發(fā)明的第五實施例,提供了一種用于提供數(shù)據(jù)訪問的數(shù)據(jù)庫系統(tǒng),其中,該 數(shù)據(jù)庫系統(tǒng)包括一個或多個根據(jù)前述第三方面的數(shù)據(jù)庫管理裝置以及一個或多個根據(jù)前 述第四方面的數(shù)據(jù)存儲裝置。
[0039] 現(xiàn)有的NoSQL數(shù)據(jù)庫或類似數(shù)據(jù)庫分為兩個實體,METADATA節(jié)點與USERDATA節(jié) 點,其中USERDATA節(jié)點無法對來自客戶端的數(shù)據(jù)訪問進行訪問授權驗證,從而無法實現(xiàn)訪 問控制。具體地,根據(jù)本發(fā)明,在METADATA節(jié)點對客戶端的存儲位置及授權請求進行認證 并為其生成授權訪問令牌標識、授權訪問令牌與授權訪問令牌驗證碼,并將包含授權訪問 令牌標識、授權訪問令牌與授權訪問令牌驗證碼的授權訪問控制信息提供給客戶端,從而 當客戶端向USERDATA節(jié)點請求進行數(shù)據(jù)訪問時,USERDATA節(jié)點可以根據(jù)該數(shù)據(jù)訪問請求 中的授權訪問控制信息執(zhí)行授權驗證,解決了目前NoSQL數(shù)據(jù)庫或類似數(shù)據(jù)庫存在的無法 對數(shù)據(jù)訪問請求進行授權訪問控制的問題,提高來數(shù)據(jù)庫的安全性。
【專利附圖】
【附圖說明】
[0040] 通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它 特征、目的和優(yōu)點將會變得更明顯:
[0041] 圖1示出NoSQL數(shù)據(jù)庫的架構圖;
[0042] 圖2示出根據(jù)本發(fā)明一個實施例的應用場景圖;
[0043] 圖3示出根據(jù)本發(fā)明一個實施例的用于為數(shù)據(jù)庫提供授權訪問控制的方法流程 圖;
[0044] 圖4示出根據(jù)本發(fā)明另一個實施例的用于為數(shù)據(jù)庫提供授權訪問控制的方法示 意圖;
[0045] 圖5示出根據(jù)本發(fā)明一個實施例的用于為數(shù)據(jù)庫提供授權訪問控制的裝置示意 圖;
[0046] 圖6示出根據(jù)本發(fā)明另一個實施例的用于為數(shù)據(jù)庫提供授權訪問控制的裝置示 意圖。
[0047] 附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0048] 下面結合附圖對本發(fā)明作進一步詳細描述。
[0049] 圖2示出根據(jù)本發(fā)明一個實施例的應用場景示意圖,其中包括客戶端UCD Clientl,N〇SQL數(shù)據(jù)庫系統(tǒng)或類似數(shù)據(jù)庫系統(tǒng)的METADATA節(jié)點,其中示出一個數(shù)據(jù)管理裝 置METADATA_1,與USERDATA節(jié)點,其中包括兩個由數(shù)據(jù)管理裝置METADATA_1管理的數(shù)據(jù)存 儲裝置 UCD Storage Node,USERDAT_1,USERDATA_23。
[0050] 圖3示出根據(jù)本發(fā)明一個實施例的為數(shù)據(jù)庫提供授權訪問控制的方法示意圖。以 下參考圖3并結合圖2來進行詳細描述:
[0051] 在步驟S301中,客戶端1向數(shù)據(jù)庫管理裝置2發(fā)送存儲位置及授權請求,用于請 求獲取待訪問文件的數(shù)據(jù)塊的存儲位置和訪問權限。以下通過兩個示例來說明該存儲位置 及授權請求:
[0052] 示例1,客戶端1為用戶設備。在此實例中,用戶設備向數(shù)據(jù)庫管理裝置發(fā)送的存 儲位置及授權請求的格式如下所示:
[0053] Request_Authorization(user_name/user_id, user_credential, metadata_ node_name, file_name/file_id,......)
[0054] 其中:
[0055] Request_Authorization為該存儲位置及授權請求;
[0056] user_name 為用戶名;
[0057] user_id為用戶標識;
[0058] user_credential為用戶認證憑證,例如可為用戶密鑰或證書等;
[0059] metadata_node_name為要發(fā)送該請求的數(shù)據(jù)庫管理裝置的名稱;
[0060] file_name為待訪問文件的文件名;
[0061] file_id為待訪問文件的文件標識;
[0062] 示例2,客戶端1為第三方應用。在此實例中,第三方應用向數(shù)據(jù)庫管理裝置發(fā)送 的存儲位置及授權請求的格式如下所示:
[0063] Request_Authorization (application_name/appl ication」d, application_ credential, metadata_node_name, file_name/ file_id, user_authorization_ grant,......)
[0064] 其中:
[0065] Request_Authorization為該存儲位置及授權請求;
[0066] application_name為第三方應用名稱;
[0067] application_id為第三方應用標識;
[0068] application_credential為第三方應用認證憑證,例如可為第三方應用密鑰或證 書等;
[0069] metadata_node_name為要發(fā)送該請求的數(shù)據(jù)庫管理裝置的名稱;
[0070] file_name為待訪問文件的文件名;
[0071] file_id為待訪問文件的文件標識;
[0072] user_authorization_grant 包括但不限于 RFC6749 協(xié)議中定義的 Authrozation Grant (授權許可)。
[0073] 隨后,在步驟S302中,數(shù)據(jù)庫管理裝置2基于該存儲位置及授權請求對該存儲位 置及授權請求進行認證,并且當對所述存儲位置及授權請求的認證通過后,生成基于該存 儲位置及授權請求的授權訪問控制信息,該授權訪問控制信息包括授權訪問令牌標識、授 權訪問令牌以及授權訪問令牌驗證碼。
[0074] 另外,數(shù)據(jù)庫管理裝置2可以,在對該存儲位置及授權請求進行認證之前或當對 所述存儲位置及授權請求的認證通過后,基于所述存儲位置及授權請求確定待訪問數(shù)據(jù)塊 的存儲位置。
[0075] 本領域技術人員應理解現(xiàn)有技術中各種對數(shù)據(jù)訪問請求進行認證的方案均可適 用于本發(fā)明,并應包含于本申請保護范圍中。以下通過一個示例來對生成授權訪問控制信 息的過程進行說明:
[0076] 示例3,授權訪問控制信息的格式如下所示:
[0077] Access_Token = {TokenID, Token, Token_UCD}
[0078] 其中,Access_Token為授權訪問控制信息;
[0079] Token為授權訪問令牌;
[0080] TokenID為授權訪問令牌標識;
[0081] TokenJXD為授權訪問令牌驗證碼;
[0082] 數(shù)據(jù)庫管理裝置2根據(jù)文件擁有者標識、數(shù)據(jù)塊標識、認證期限信息及訪問方式 等信息來生成授權訪問令牌,其格式如下所示:
[0083] Token = {ownerlD, [, applicationID, JblocklD, expirationln, access_ methods}
[0084] 其中,owerlD為文件擁有者標識;blockID為數(shù)據(jù)塊ID ;expirationIn為認證期 限信息,accessjnethod為訪問方式信息,包括但不限于創(chuàng)建、讀取、更新、刪除、寫入,復制、 替換等。其中,applicationID是可選的,S卩如果是第三方應用去訪問用戶數(shù)據(jù),則需要該 applicationlD。
[0085] 其中,數(shù)據(jù)庫管理裝置2通過對所生成的授權訪問令牌標識、授權訪問令牌以及 所確定存儲有待訪問文件數(shù)據(jù)塊的數(shù)據(jù)存儲裝置的存儲裝置密鑰進行散列處理,來獲得授 權訪問令牌驗證碼,其格式如下所示:
[0086] Token_UCD = HMAC (TokenID, Token, USERDATA_key)
[0087] 其中,USERDATA_key為存儲裝置密鑰,數(shù)據(jù)庫管理裝置將為存儲裝置密鑰發(fā)送給 對應的數(shù)據(jù)存儲裝置。一般地,同屬于一個數(shù)據(jù)庫管理裝置2的多個數(shù)據(jù)存儲裝置共享一 個相同的存儲裝置密鑰,優(yōu)選地,多個數(shù)據(jù)存儲裝置也可有不同的存儲裝置密鑰。該存儲裝 置密鑰可以是固定的,優(yōu)選地,也可根據(jù)運營管理策略來周期性更新的。
[0088] 在步驟S303中,數(shù)據(jù)庫管理裝置2將包含待訪問數(shù)據(jù)塊的存儲位置信息以及所生 成的對應的授權訪問控制信息的存儲位置及授權響應消息發(fā)送給客戶端1。以下通過兩個 示例來說明發(fā)送授權訪問控制信息的過程:
[0089] 示例4,客戶端1為用戶設備:
[0090] 數(shù)據(jù)庫管理裝置2將包含待訪問數(shù)據(jù)塊的存儲位置信息以及對應的授權訪問控 制信息的存儲位置及授權響應消息發(fā)送給客戶端1,其中存儲位置及授權響應消息格式如 下:
[0091] Response_Authorization (user_name/user_id, 1ist_of_blocklDs/block_ locations, Access_TOken,......)
[0092] 其中,Response_Authorization為存儲位置及授權響應消息;
[0093] list_of_blockIDs為待訪問數(shù)據(jù)塊標識列表;
[0094] blocks_locations為待訪問數(shù)據(jù)塊的存儲位置信息;
[0095] Access_Token為授權訪問控制信息。
[0096] 示例5,客戶端1為第三方應用:
[0097] 其中,數(shù)據(jù)庫管理裝置2將存儲位置及授權響應消息中發(fā)送給客戶端1,其中,該 存儲位置及授權響應消息包含待訪問數(shù)據(jù)塊的存儲位置信息以及所生成的對應的授權訪 問控制信息。該存儲位置及授權響應消息的格式如下所示:
[0098] Response_Authorization (application_name/application_id, 1 i st_of_ blockIDs/block_locations, Access_Token[, refresh_token],......)
[0099] 其中,
[0100] Response_Authorization為存儲位置及授權響應消息;
[0101] list_of_blockIDs為待訪問數(shù)據(jù)塊標識列表;
[0102] blocks_locations為待訪問數(shù)據(jù)塊的存儲位置信息;
[0103] Access_Token為授權訪問控制信息;
[0104] 其中,refresh_token是可選的,其為RFC6749協(xié)議中定義的Refresh Token。
[0105] 在步驟S304中,當接收到來自數(shù)據(jù)庫管理裝置2的存儲位置及授權響應消息,客 戶端1向數(shù)據(jù)存儲裝置3發(fā)起數(shù)據(jù)訪問請求,用以請求訪問數(shù)據(jù)塊,該數(shù)據(jù)訪問請求中包含 由數(shù)據(jù)庫管理裝置2反饋的響應消息中提取的待訪問數(shù)據(jù)塊的存儲位置信息以及授權訪 問控制信息。以下通過一個示例來進行說明:
[0106] 示例6,客戶端1發(fā)送的數(shù)據(jù)訪問請求的格式如下:
[0107] Request_Resource(ucd_client_name/ucd_client_id, blockID, Access_ Token,......)
[0108] 其中:
[0109] Request_Resource 為數(shù)據(jù)訪問請求;
[0110] Ucd_client_name為客戶端名稱,該客戶端可代表用戶也可以代表第三方應用;
[0111] Ucd_client_id為客戶端標識,該客戶端可代表用戶也可以代表第三方應用;
[0112] BlockID為待訪問的數(shù)據(jù)塊的標識;
[0113] Access_Token為對應的授權訪問控制信息。
[0114] 在步驟S305中,當接收到來自客戶端1的數(shù)據(jù)訪問請求后,數(shù)據(jù)存儲裝置3從該 數(shù)據(jù)訪問請求中獲取待訪問數(shù)據(jù)塊的存儲位置信息、授權訪問控制信息與訪問控制權限;
[0115] 在步驟S306中,數(shù)據(jù)存儲裝置3根據(jù)該授權訪問控制信息,來對來自客戶端1的 該數(shù)據(jù)訪問請求進行驗證。以下通過幾個示例來對驗證過程進行說明:
[0116] 示例7,在步驟S302中,數(shù)據(jù)庫管理裝置2針對客戶端1的存儲位置及授權請求生 成授權訪問控制信息,其中包括授權訪問令牌標識、授權訪問令牌與根據(jù)預定散列算法對 該授權訪問令牌標識、授權訪問令牌與存儲待訪問數(shù)據(jù)塊的數(shù)據(jù)存儲裝置的存儲裝置密鑰 USERDATA_key進行散列處理獲得的第一授權訪問令牌驗證碼,如下式所示 :
[0117] Token_UCD = HMAC (TokenID,Token, USERDATA_key)
[0118] 其中,TokenJXD為第一授權訪問令牌驗證碼;
[0119] Token為數(shù)據(jù)庫管理裝置2生成的授權訪問令牌;
[0120] TokenID為該授權訪問令牌標識;
[0121] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0122] 而在步驟S306中,數(shù)據(jù)存儲裝置3通過同樣散列算法來對驗證請求中的授權訪問 令牌標識、授權訪問令牌及數(shù)據(jù)存儲裝置的存儲裝置密鑰USERDATA_key進行散列處理,獲 得第二授權訪問令牌驗證碼,如下式所示:
[0123] Token_UCD' = HMAC (TokenID, Token, USERDATA_key)
[0124] 其中,Token_U⑶'為第二授權訪問令牌驗證碼;
[0125] Token為驗證請求中的授權訪問令牌;
[0126] Token為該授權訪問令牌標識
[0127] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0128] 最后,通過比較第一與第二授權訪問令牌驗證碼來對該請求進行驗證,兩者如果 相同,則確定驗證通過。
[0129] 示例8,在步驟S306中,數(shù)據(jù)存儲裝置3還可驗證發(fā)放該授權訪問控制信息的數(shù)據(jù) 庫管理裝置是否可信。因為只有數(shù)據(jù)存儲裝置3和發(fā)放該授權訪問控制信息的數(shù)據(jù)庫管理 裝置共享密鑰USERDATA_key,如果數(shù)據(jù)存儲裝置3能根據(jù)共享密鑰USERDATA_key驗證授權 訪問控制信息,即可認為該數(shù)據(jù)庫管理裝置是可信的。再例如,來自客戶端的數(shù)據(jù)訪問請求 中包含發(fā)放該訪問控制信息的數(shù)據(jù)庫管理裝置的標識,數(shù)據(jù)存儲裝置3可提取該數(shù)據(jù)庫管 理裝置的標識,并將其與預存的受信任列表進行比較來驗證。
[0130] 最后,在步驟S307中,當驗證通過,數(shù)據(jù)存儲裝置3根據(jù)由來自客戶端的授權訪問 控制信息獲取的數(shù)據(jù)塊存儲位置以及相應的訪問控制權限,來對待訪問的數(shù)據(jù)塊執(zhí)行相應 的訪問操作,該訪問操作包括但不限于創(chuàng)建、讀取、更新、刪除、寫入、復制、與替換等。
[0131] 在一個優(yōu)選實施例中,來自客戶端的數(shù)據(jù)訪問請求的授權訪問控制信息中僅包含 授權訪問令牌標識,在步驟S308(未示出),數(shù)據(jù)存儲裝置3向數(shù)據(jù)庫管理裝置2發(fā)送權限 請求消息,其中,該請求消息包括該授權訪問令牌標識,用于請求該授權訪問令牌標識對應 的訪問控制權限;
[0132] 接收到來自數(shù)據(jù)存儲裝置3的權限請求消息后,在步驟309 (未示出),數(shù)據(jù)管理裝 置2根據(jù)該授權訪問令牌標識來查詢與之對應的訪問控制權限,然后將查詢到的訪問控制 權限發(fā)送給數(shù)據(jù)存儲裝置3。
[0133] 在另一優(yōu)選實施例中,在步驟S302中,數(shù)據(jù)庫管理裝置2生成授權訪問控制信息, 并利用其自身及其管理的數(shù)據(jù)存儲裝置3已知的密鑰及加密算法對該授權訪問控制信息 進行加密,然后將包含加密后的授權訪問控制信息的授權響應信息發(fā)送給客戶端1。
[0134] 而在步驟S305中,數(shù)據(jù)存儲裝置3從來自客戶端1的數(shù)據(jù)訪問請求中提取出加密 的授權訪問控制信息,然后采用所述已知的密鑰及對應的解密算法對其進行解密,獲得解 密后的授權訪問控制信息。
[0135] 在另一優(yōu)選實施例中,在上述涉及客戶端1與數(shù)據(jù)庫管理裝置2,及客戶端1與數(shù) 據(jù)存儲裝置3之間的通信均基于傳輸層安全協(xié)議(TLS),以確保信息傳輸?shù)陌踩?br>
[0136] 圖4示出根據(jù)本發(fā)明的另一個優(yōu)選實施例的為數(shù)據(jù)庫提供訪問控制的方法示意 圖。以下參照圖4并結合圖2與3來對該優(yōu)選實施例進行詳細描述:
[0137] 其中,步驟S401至S405與圖3所示步驟S301至S305相同,在此為簡明起見,以 引用方式包含于此,不做贅述;
[0138] 在步驟S406中,數(shù)據(jù)存儲裝置3向數(shù)據(jù)庫管理裝置2發(fā)送驗證請求,用于請求對 來自客戶端1的該數(shù)據(jù)訪問請求進行驗證,該驗證請求中包含所獲取的授權訪問控制信 息;
[0139] 在步驟S407中,當接收到來自數(shù)據(jù)存儲裝置3的驗證請求,數(shù)據(jù)庫管理裝置2對 該驗證請求進行驗證。下面通過一個示例來對該驗證過程進行說明:
[0140] 示例10,在步驟S402中,針對客戶端1的存儲位置及授權請求生成授權訪問控制 信息,其中包括授權訪問令牌標識、授權訪問令牌與根據(jù)預定散列算法對該授權訪問令牌 標識、授權訪問令牌與存儲待訪問數(shù)據(jù)塊的數(shù)據(jù)存儲裝置的存儲裝置密鑰USERDATA_key 進行散列處理獲得的第一授權訪問令牌驗證碼,其中,Token_UCD為第一授權訪問令牌驗證 碼;
[0141] Token為數(shù)據(jù)庫管理裝置2生成的授權訪問令牌;
[0142] TokenID為授權訪問令牌標識;
[0143] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0144] 在步驟S407中,數(shù)據(jù)庫管理裝置2通過同樣散列算法來對驗證請求中的授權訪問 令牌標識、授權訪問令牌及數(shù)據(jù)存儲裝置的存儲裝置密鑰USERDATA_key進行散列處理,獲 得第二授權訪問令牌驗證碼,,如下式所示:
[0145] Token_UCD' = HMAC (TokenID, Token, USERDATA_key)
[0146] 其中,Token_U⑶'為第二授權訪問令牌驗證碼;
[0147] Token為數(shù)據(jù)庫管理裝置2生成的授權訪問令牌;
[0148] TokenID為該授權訪問令牌標識;
[0149] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0150] 最后,通過比較第一與第二授權訪問令牌驗證碼來對該驗證請求進行驗證,兩者 如果相同,則確定驗證通過。
[0151] 在步驟S408中,當對該驗證請求的驗證通過,數(shù)據(jù)庫管理裝置2向數(shù)據(jù)存儲裝置 發(fā)送驗證通過消息;
[0152] 在步驟S409中,當接收到來自數(shù)據(jù)庫管理裝置2的驗證通過消息,數(shù)據(jù)存儲裝置3 根據(jù)來自客戶端1的待訪問數(shù)據(jù)塊的存儲位置以及對應的訪問控制權限,來對待訪問的數(shù) 據(jù)塊執(zhí)行相應的訪問操作,該訪問操作包括但不限于創(chuàng)建、讀取、更新、刪除、寫入、復制、與 替換等。
[0153] 在一個優(yōu)選實施例中,來自客戶端的數(shù)據(jù)訪問請求的授權訪問控制信息中僅包含 授權訪問令牌標識,在步驟S410(未示出),數(shù)據(jù)存儲裝置3向數(shù)據(jù)庫管理裝置2發(fā)送權限 請求消息,其中,該請求消息包括該授權訪問令牌標識,用于請求該授權訪問令牌標識對應 的訪問控制權限;
[0154] 接收到來自數(shù)據(jù)存儲裝置3的權限請求消息后,在步驟411 (未示出),數(shù)據(jù)管理裝 置2根據(jù)該授權訪問令牌標識來查詢與之對應的訪問控制權限,然后將查詢到的訪問控制 權限發(fā)送給數(shù)據(jù)存儲裝置3。
[0155] 需要注意,以上描述中步驟的標號僅為說明使用,并不應理解為對各步驟之間先 后順序的進行任何限制。
[0156] 圖5示出根據(jù)本發(fā)明一個實施例的為數(shù)據(jù)庫提供授權訪問控制的系統(tǒng)示意圖,其 中包括客戶端1、數(shù)據(jù)庫管理裝置與數(shù)據(jù)存儲裝置的框圖。以下參考圖5并結合圖2來進行 詳細描述:
[0157] 客戶端1 (未示出)向數(shù)據(jù)庫管理裝置2發(fā)送存儲位置及授權請求,用于請求獲取 待訪問文件的數(shù)據(jù)塊的存儲位置和訪問權限。以下通過兩個示例來說明該存儲位置及授權 請求:
[0158] 示例11,客戶端1為用戶設備。在此實例中,用戶設備向數(shù)據(jù)庫管理裝置2發(fā)送的 存儲位置及授權請求的格式如下所示:
[0159] Request_Authorization(user_name/user_id, user_credential, metadata_ node_name, file_name/file_id,......)
[0160] 其中:
[0161] Request_Authorization為該存儲位置及授權請求;
[0162] user_name 為用戶名;
[0163] user_id為用戶標識;
[0164] user_credential為用戶認證憑證,例如可為用戶密鑰或證書等;
[0165] metadata_node_name為要發(fā)送該請求的數(shù)據(jù)庫管理裝置的名稱;
[0166] file_name為待訪問文件的文件名;
[0167] file_id為待訪問文件的文件標識;
[0168] 示例12,客戶端1為第三方應用。在此實例中,第三方應用向數(shù)據(jù)庫管理裝置2發(fā) 送的存儲位置及授權請求的格式如下所示:
[0169] Request_Authorization (application_name/appl ication」d, application_ credential, metadata_node_name, file_name/file_id, user_authorization_ grant,......)
[0170] 其中:
[0171] Request_Authorization為該存儲位置及授權請求;
[0172] application_name為第三方應用名稱;
[0173] application_id為第三方應用標識;
[0174] application_credential為第三方應用認證憑證,例如可為第三方應用密鑰或證 書等;
[0175] metadata_node_name為要發(fā)送該請求的數(shù)據(jù)庫管理裝置的名稱;
[0176] file_name為待訪問文件的文件名;
[0177] file_id為待訪問文件的文件標識;
[0178] user_authorization_grant 包括但不限于 RFC6749 協(xié)議中定義的 Authrozation Grant (授權許可)。
[0179] 數(shù)據(jù)庫管理裝置2中,第一接收裝置201接收到來自客戶端的用于請求待訪問文 件的數(shù)據(jù)塊的存儲位置和相應的授權訪問控制信息的存儲位置及授權請求后,認證裝置 202對該存儲位置及授權請求進行認證。
[0180] 在認證通過后,授權生成裝置203對該存儲位置及授權請求生成對應的授權訪問 控制信息,該授權訪問控制信息包括授權訪問令牌標識、授權訪問令牌以及授權訪問令牌 驗證碼。
[0181] 另外,數(shù)據(jù)庫管理裝置2的確定裝置(未示出)可以,在對該存儲位置及授權請求 進行認證之前或當對所述存儲位置及授權請求的認證通過后,基于所述存儲位置及授權請 求確定待訪問數(shù)據(jù)塊的存儲位置。
[0182] 本領域技術人員應理解現(xiàn)有技術中各種認證技術均可適用于本發(fā)明,并應包含于 本申請保護范圍中。
[0183] 以下通過一個示例來對授權生成裝置203生成授權訪問控制信息的過程進行說 明:
[0184] 示例13,授權訪問控制信息的格式如下所示:
[0185] Access_Token = {TokenID, Token, Token_UCD}
[0186] 其中,Access_Token為授權訪問控制信息;TokenID為授權訪問令牌;TokenID為 授權訪問令牌標識;Token_UCD為授權訪問令牌驗證碼;
[0187] 其中,授權生成裝置203根據(jù)文件擁有者標識、數(shù)據(jù)塊標識、認證期限信息及訪問 方式等信息來生成授權訪問令牌,其格式如下所示:
[0188] Token = {ownerlD, [, applicationID, JblocklD, expirationln, access_ methods}
[0189] 其中,owerlD為文件擁有者標識;blockID為數(shù)據(jù)塊ID ;expirationIn為認證期 限信息,accessjnethod為訪問方式信息,包括但不限于創(chuàng)建、讀取、更新、刪除、寫入,復制、 替換等。其中,applicationID是可選的,S卩如果是第三方應用去訪問用戶數(shù)據(jù),則需要該 applicationlD。
[0190] 其中,授權生成裝置203通過對所生成的授權訪問令牌標識、授權訪問令牌以及 所確定存儲有待訪問文件數(shù)據(jù)塊的數(shù)據(jù)存儲裝置的存儲裝置密鑰進行散列處理,來獲得授 權訪問令牌驗證碼,其格式如下所示:
[0191] Token_UCD = HMAC (TokenID, Token, USERDATA_key)
[0192] 其中,USERDATA_key為存儲裝置密鑰,數(shù)據(jù)庫管理裝置2將為存儲裝置密鑰發(fā)送 給對應的數(shù)據(jù)存儲裝置。一般地,同屬于一個數(shù)據(jù)庫管理裝置2的多個數(shù)據(jù)存儲裝置共享 一個相同的存儲裝置密鑰,優(yōu)選地,多個數(shù)據(jù)存儲裝置也可有不同的存儲裝置密鑰。該存儲 裝置密鑰可以是固定的,優(yōu)選地,也可根據(jù)運營管理策略來周期性更新的。
[0193] 數(shù)據(jù)庫管理裝置2中的第一響應裝置204將客戶端1請求訪問的數(shù)據(jù)塊的存儲位 置信息以及生成的對應的授權訪問控制信息置于存儲位置及授權響應消息中發(fā)送給客戶 端1。以下通過兩個示例來說明發(fā)送授權訪問控制信息的過程:
[0194] 示例14,客戶端1為用戶設備:
[0195] 第一響應裝置204將包含待訪問數(shù)據(jù)塊的存儲位置信息以及對應的授權訪問控 制信息的存儲位置及授權響應消息發(fā)送給客戶端1,其中存儲位置及授權響應消息格式如 下:
[0196] Response_Authorization (user_name/user_id, 1ist_of_blockIDs/block_ locations, Access_Token,......)
[0197] 其中,Response_Authorization為存儲位置及授權響應消息;
[0198] list_of_blockIDs為待訪問數(shù)據(jù)塊標識列表;
[0199] blocks_locations為待訪問數(shù)據(jù)塊的存儲位置信息;
[0200] Access_Token為授權訪問控制信息。
[0201] 示例15,客戶端1為第三方應用:
[0202] 其中,第一響應裝置204將存儲位置及授權響應消息發(fā)送給客戶端1,其中,該存 儲位置及授權響應消息包含待訪問的數(shù)據(jù)塊的存儲位置信息以及所生成的對應的授權訪 問控制信息。該存儲位置及授權響應消息的格式如下所示:
[0203] Response_Authorization (application_name/application_id, 1 i st_of_ blocklDs/block_locations, Access_Token[, refresh_token],......)
[0204] 其中,
[0205] Response_Authorization為存儲位置及授權響應消息;
[0206] list_of_blockIDs為待訪問數(shù)據(jù)塊標識列表;
[0207] blocks_locations為待訪問數(shù)據(jù)塊的存儲位置信息;
[0208] Access_Token為授權訪問控制信息;
[0209] 其中,refresh_token是可選的,其為RFC6749協(xié)議中定義的Refresh Token。
[0210] 當接收到來自數(shù)據(jù)庫管理裝置2的響應消息,客戶端1向數(shù)據(jù)存儲裝置3發(fā)起數(shù) 據(jù)訪問請求,用以請求訪問數(shù)據(jù)塊,該數(shù)據(jù)訪問請求中包含由數(shù)據(jù)庫管理裝置2反饋的響 應消息中提取的數(shù)據(jù)塊存儲位置信息以及授權訪問控制信息。以下通過一個示例來進行說 明:
[0211] 示例16,客戶端1發(fā)送的數(shù)據(jù)訪問請求的格式如下:
[0212] Request_Resource(ucd_client_name/ucd_client_id, blockID, Access_ Token,......)
[0213] 其中:
[0214] Request_Resource 為數(shù)據(jù)訪問請求;
[0215] Ucd_client_name為客戶端名稱,該客戶端可代表用戶也可以代表第三方應用;
[0216] Ucd_Client_id為客戶端標識,該客戶端可代表用戶也可以代表第三方應用;
[0217] BlockID為待訪問的數(shù)據(jù)塊的標識;
[0218] Access_Token為對應的授權訪問控制信息。
[0219] 在數(shù)據(jù)存儲裝置3中,當其第四接收裝置301接收到來自客戶端1的數(shù)據(jù)訪問請 求后,獲取裝置302從該數(shù)據(jù)訪問請求中獲取授權訪問控制信息及訪問控制權限;
[0220] 隨后,數(shù)據(jù)存儲裝置3的第二驗證裝置303根據(jù)該授權訪問控制信息,來對來自客 戶端1的該數(shù)據(jù)訪問請求進行驗證。以下通過幾個示例來對該驗證過程進行說明:
[0221] 示例17,如上所述,數(shù)據(jù)庫管理裝置2中,授權生成裝置203針對客戶端1的存儲 位置及授權請求生成授權訪問控制信息,其中包括授權訪問令牌標識、授權訪問令牌與根 據(jù)預定散列算法對該授權訪問令牌標識、授權訪問令牌與存儲待訪問數(shù)據(jù)塊的數(shù)據(jù)存儲裝 置的存儲裝置密鑰USERDATA_key進行散列處理獲得的第一授權訪問令牌驗證碼,如下式 所示:
[0222] Token_UCD = HMAC(TokenID,Token,USERDATA_key)
[0223] 其中,Token_U⑶為第一授權訪問令牌驗證碼;
[0224] Token為數(shù)據(jù)庫管理裝置2生成的授權訪問令牌;
[0225] TokenID為該授權令牌的令牌標識;
[0226] USERDATA_key為對應的數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0227] 而在數(shù)據(jù)存儲裝置3中,第二驗證裝置303通過同樣的散列算法來對驗證請求中 的授權訪問令牌標識、授權訪問令牌及數(shù)據(jù)存儲裝置的存儲裝置密鑰USERDATA_key進行 散列處理,獲得第二授權訪問令牌驗證碼,如下式所示 :
[0228] Token_UCD' = HMAC (TokenID,Token,USERDATA_key)
[0229] 其中,Token_U⑶'為第二授權訪問令牌驗證碼;
[0230] Token為驗證請求中的授權訪問令牌;
[0231] TokenID為該授權令牌的令牌標識;
[0232] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0233] 最后,通過比較第一與第二授權訪問令牌驗證碼來對該請求進行驗證,兩者如果 相同,則確定驗證通過。
[0234] 示例18,在數(shù)據(jù)存儲裝置3中,第二驗證裝置303還可驗證發(fā)放該授權訪問控制信 息的數(shù)據(jù)庫管理裝置是否可信。因為只有數(shù)據(jù)存儲裝置3和發(fā)放該授權訪問控制信息的數(shù) 據(jù)庫管理裝置共享密鑰USERDATA_key,如果數(shù)據(jù)存儲裝置3能根據(jù)共享密鑰USERDATA_key 驗證授權訪問控制信息,即可認為該數(shù)據(jù)庫管理裝置是可信的。再例如,來自客戶端的數(shù)據(jù) 訪問請求中包含發(fā)放該訪問控制信息的數(shù)據(jù)庫管理裝置的標識,第二驗證裝置303可通過 將提取出的該數(shù)據(jù)庫管理裝置的標識與預存的受信任列表進行比較來驗證。
[0235] 最后,當驗證通過,數(shù)據(jù)存儲裝置3的訪問操作裝置304根據(jù)由來自客戶端1的 授權訪問控制信息獲取的數(shù)據(jù)塊存儲位置以及相應的訪問控制權限,來對待訪問的數(shù)據(jù)塊 執(zhí)行相應的訪問操作,該訪問操作包括但不限于創(chuàng)建、讀取、更新、刪除、寫入、復制、與替換 等。
[0236] 在一個優(yōu)選實施例中,來自客戶端的數(shù)據(jù)訪問請求的授權訪問控制信息中僅包含 授權訪問令牌標識,在數(shù)據(jù)存儲裝置3中,獲取裝置302的權限請求模塊3021 (未示出)向 數(shù)據(jù)庫管理裝置2發(fā)送權限請求消息,其中,該權限請求消息包括該授權訪問令牌標識,用 于請求該授權訪問令牌標識對應的訪問控制權限;
[0237] 在數(shù)據(jù)庫管理裝置2中,當?shù)谌邮昭b置208(未示出)接收到來自數(shù)據(jù)存儲裝置 3的權限請求消息后,權限查詢裝置209 (未示出)根據(jù)該授權訪問令牌標識來查詢與之對 應的訪問控制信息,然后第三響應裝置210(未示出)將查詢到的訪問控制權限發(fā)送給數(shù)據(jù) 存儲裝置3。
[0238] 在另一優(yōu)選實施例中,數(shù)據(jù)庫管理裝置2的授權生成裝置203包括授權生成模塊 2031 (未示出)與加密模塊2032(未示出)。其中,授權生成模塊2031生成授權訪問控制 信息,隨后,加密模塊2032利用其自身及其管理的數(shù)據(jù)存儲裝置3已知的預定密鑰及加密 算法對該授權訪問控制信息進行加密,然后第一響應裝置204將包含加密后的授權訪問控 制信息的存儲位置及授權響應消息發(fā)送給客戶端1。
[0239] 而在數(shù)據(jù)存儲裝置3中,獲取裝置302從來自客戶端1的數(shù)據(jù)訪問請求中提取出 加密的授權訪問控制信息,然后采用所述已知的密鑰及對應的解密算法對其進行解密,獲 得解密后的授權訪問控制信息。
[0240] 在另一優(yōu)選實施例中,在上述涉及客戶端1與數(shù)據(jù)庫管理裝置2,及客戶端1與數(shù) 據(jù)存儲裝置3之間的通信均基于傳輸層安全協(xié)議(TLS),以確保信息傳輸?shù)陌踩?br>
[0241] 圖6示出根據(jù)本發(fā)明的另一個優(yōu)選實施例的為數(shù)據(jù)庫提供訪問控制的方法示意 圖。以下參照圖6并結合圖2與3來對該優(yōu)選實施例進行詳細描述:
[0242] 其中,圖6中所示的數(shù)據(jù)庫管理裝置2的確定裝置(未示出)、第一接收裝置20Γ、 認證裝置202'、授權生成裝置203'、第一響應裝置204'以及數(shù)據(jù)存儲裝置3的第四接收裝 置30Γ與獲取裝置302'的操作過程與圖5所示數(shù)據(jù)庫管理裝置2的確定裝置(未示出)、 第一接收裝置201、認證裝置202、授權生成裝置203、第一響應裝置204以及數(shù)據(jù)存儲裝置 3的第四接收裝置301與獲取裝置302的操作過程相同,在此為簡明起見,以引用方式包含 于此,不做贅述;
[0243] 如圖6所示,在數(shù)據(jù)存儲裝置3中,第二驗證裝置303'包括驗證請求模塊3031' 與驗證接收模塊3032 ',驗證請求模塊3031'向數(shù)據(jù)庫管理裝置2發(fā)送驗證請求,用于請求 對來自客戶端1的該數(shù)據(jù)訪問請求進行驗證,該驗證請求中包含所獲取的授權訪問控制信 息;
[0244] 在數(shù)據(jù)庫管理裝置2中,當?shù)诙邮昭b置205'接收到來自數(shù)據(jù)存儲裝置3的驗證 請求,第一驗證裝置206'對該驗證請求進行驗證。下面通過一個示例來對該驗證過程進行 說明:
[0245] 示例20,在數(shù)據(jù)庫管理裝置2中,授權生成裝置203'針對客戶端1的存儲位置 及授權請求生成授權訪問控制信息,其中包括授權訪問令牌標識、授權訪問令牌與根據(jù)預 定散列算法對授權訪問令牌標識、該授權訪問令牌與存儲待訪問數(shù)據(jù)塊的數(shù)據(jù)存儲裝置的 存儲裝置密鑰USERDATA_key進行散列處理獲得的第一授權訪問令牌驗證碼,其中,Token_ U⑶為第一授權訪問令牌驗證碼,如下式所示 :
[0246] Token_UCD = HMAC(TokenID,Token,USERDATA_key)
[0247] 其中,Token_U⑶為第一授權訪問令牌驗證碼;
[0248] Token為生成的授權訪問令牌;
[0249] TokenID為授權令牌的令牌標識;
[0250] USERDATA_key為對應的數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0251] 在此,第一驗證裝置206'通過同樣散列算法來對驗證請求中的授權訪問令牌標 識、授權訪問令牌及數(shù)據(jù)存儲裝置的存儲裝置密鑰USERDATA_key進行散列處理,獲得第二 授權訪問令牌驗證碼,,如下式所示:
[0252] Token_UCD' = HMAC (TokenID,Token,USERDATA_key)
[0253] 其中,Token_U⑶'為第二授權訪問令牌驗證碼;
[0254] Token為來自數(shù)據(jù)存儲裝置3的驗證請求中的授權訪問令牌;
[0255] TokenID為授權訪問令牌標識;
[0256] USERDATA_key為數(shù)據(jù)存儲裝置的存儲裝置密鑰;
[0257] 最后,第一驗證裝置206'通過比較第一與第二授權訪問令牌驗證碼來對該驗證請 求進行驗證,兩者如果相同,則確定驗證通過。
[0258] 在第一驗證裝置206'當對該驗證請求的驗證通過,數(shù)據(jù)庫管理裝置2的第二響應 裝置207'向數(shù)據(jù)存儲裝置3發(fā)送驗證通過消息;
[0259] 在數(shù)據(jù)存儲裝置3中,當驗證接收模塊3032'接收到來自數(shù)據(jù)庫管理裝置2的驗 證通過消息后,數(shù)據(jù)存儲裝置3的訪問操作裝置304'根據(jù)來自客戶端1的待訪問數(shù)據(jù)塊的 存儲位置以及對應的訪問控制權限,來對待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作,該訪問操 作包括但不限于創(chuàng)建、讀取、更新、刪除、寫入、復制、與替換等。
[0260] 在一個優(yōu)選實施例中,來自客戶端的數(shù)據(jù)訪問請求的授權訪問控制信息中僅包含 授權訪問令牌標識,在數(shù)據(jù)存儲裝置3中,獲取裝置302'的權限請求模塊3021'(未示出) 向數(shù)據(jù)庫管理裝置2發(fā)送權限請求消息,其中,該權限請求消息包括該授權訪問令牌標識, 用于請求該授權訪問令牌標識對應的訪問控制權限;
[0261] 在數(shù)據(jù)庫管理裝置2中,當?shù)谌邮昭b置208'(未示出)接收到來自數(shù)據(jù)存儲裝 置3的權限請求消息后,權限查詢裝置209'(未示出)根據(jù)該授權訪問令牌標識來查詢與 之對應的訪問控制權限,然后第三響應裝置210'(未示出)將查詢到的訪問控制權限發(fā)送 給數(shù)據(jù)存儲裝置3。
[0262] 需要注意的是,本發(fā)明可在軟件和/或軟件與硬件的組合體中被實施,例如,可采 用專用集成電路(ASIC)、通用目的計算機或任何其他類似硬件設備來實現(xiàn)。在一個實施例 中,本發(fā)明的軟件程序可以通過處理器執(zhí)行以實現(xiàn)上文所述步驟或功能。同樣地,本發(fā)明的 軟件程序(包括相關的數(shù)據(jù)結構)可以被存儲到計算機可讀記錄介質中,例如,RAM存儲器, 磁或光驅動器或軟磁盤及類似設備。另外,本發(fā)明的一些步驟或功能可采用硬件來實現(xiàn),例 如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
[0263] 另外,本發(fā)明的一部分可被應用為計算機程序產(chǎn)品,例如計算機程序指令,當其被 計算機執(zhí)行時,通過該計算機的操作,可以調用或提供根據(jù)本發(fā)明的方法和/或技術方案。 而調用本發(fā)明的方法的程序指令,可能被存儲在固定的或可移動的記錄介質中,和/或通 過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行 的計算機設備的工作存儲器中。在此,根據(jù)本發(fā)明的一個實施例包括一個裝置,該裝置包括 用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當該計算機程序 指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本發(fā)明的多個實施例的方法和/或 技術方案。
[0264] 對于本領域技術人員而言,顯然本發(fā)明不限于上述示范性實施例的細節(jié),而且在 不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論 從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權 利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內(nèi)的所有 變化涵括在本發(fā)明內(nèi)。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此 夕卜,顯然"包括" 一詞不排除其他單元或步驟,單數(shù)不排除復數(shù)。裝置權利要求中陳述的多 個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來 表示名稱,而并不表示任何特定的順序。
【權利要求】
1. 一種用于對數(shù)據(jù)訪問進行管理的方法,其中,包括以下步驟: -接收來自客戶端的存儲位置及授權請求,用于請求待訪問文件的數(shù)據(jù)塊的存儲位置 和相應的授權訪問控制信息; -基于所述存儲位置及授權請求確定待訪問數(shù)據(jù)塊的存儲位置; -基于所述存儲位置與授權請求對該存儲位置及授權請求進行認證; -當對該存儲位置及授權請求的認證通過,生成基于該存儲位置及授權請求的授權訪 問控制信息,并確定待訪問數(shù)據(jù)塊的存儲位置; -將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的授權訪問控制信息提供給所述客戶 端。
2. 根據(jù)權利要求1所述的方法,其中,該方法還包括: -接收來自數(shù)據(jù)存儲裝置的驗證請求,其中,該驗證請求用于請求對來自客戶端的數(shù)據(jù) 訪問請求進行驗證; -根據(jù)從所述驗證請求中提取出的來自該客戶端的授權訪問控制信息,對該驗證請求 進行驗證; -當驗證通過,向所述數(shù)據(jù)存儲裝置發(fā)送驗證通過消息。
3. 根據(jù)權利要求1或2所述方法,其中,所述生成授權訪問控制信息的步驟包括: -當對該存儲位置及授權請求的認證通過,生成基于該存儲位置及授權請求的授權訪 問控制信息; -對所生成授權訪問控制信息進行加密,以獲得加密后的授權訪問控制信息; 其中,所述將存儲位置以及授權訪問控制信息提供給客戶端的步驟包括: -將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的加密后的授權訪問控制信息提供給所 述客戶端。
4. 根據(jù)權利要求1至3中任一項所述的方法,其中,該方法還包括: -接收來自數(shù)據(jù)存儲裝置的訪問控制權限請求,其中包括授權訪問令牌標識,用于請求 與該令牌標識對應的訪問控制權限; -根據(jù)該訪問控制權限請求中的令牌標識查詢與之對應的訪問控制權限; -將訪問控制權限發(fā)送給所述數(shù)據(jù)存儲裝置。
5. -種用于提供數(shù)據(jù)訪問的方法,其中,該方法包括 -接收來自客戶端的數(shù)據(jù)訪問請求,該數(shù)據(jù)訪問請求包括待訪問的數(shù)據(jù)塊的存儲位置 以及對應的授權訪問控制信息; -從來自客戶端的數(shù)據(jù)訪問請求中獲取待訪問數(shù)據(jù)塊的存儲位置信息、授權訪問控制 信息及訪問控制權限; -根據(jù)從所述數(shù)據(jù)訪問請求中提取出的授權訪問控制信息,對該數(shù)據(jù)訪問請求進行驗 證; -當驗證通過,根據(jù)該數(shù)據(jù)訪問請求中的待訪問數(shù)據(jù)塊的存儲位置與訪問控制權限來 對所述待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
6. 根據(jù)權利要求5所述的方法,其中,所述步驟C包括 -發(fā)送驗證請求給數(shù)據(jù)庫管理裝置,其中,該驗證請求包含由所述數(shù)據(jù)訪問請求中提取 的授權訪問控制信息; -接收來自數(shù)據(jù)庫管理裝置的驗證通過消息; 其中,所述執(zhí)行訪問操作的步驟包括: -當接收到來自數(shù)據(jù)庫管理裝置的驗證通過消息時,根據(jù)該數(shù)據(jù)訪問請求中的待訪問 數(shù)據(jù)塊的存儲位置與對應的訪問控制權限來對所述待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
7. 根據(jù)權利要求5至6中任一項所述的方法,其中,所述對應的授權訪問控制信息包括 授權訪問令牌標識,其中,所述獲取訪問控制權限的步驟還包括: -向數(shù)據(jù)庫管理裝置發(fā)送權限請求消息,其中,該請求消息包括該令牌標識,用于請求 該令牌標識對應的訪問控制權限; -接收來自數(shù)據(jù)庫管理裝置的請求響應消息,其中包含該令牌標識對應的訪問控制權 限。
8. -種用于對數(shù)據(jù)訪問進行管理的數(shù)據(jù)庫管理裝置,其中,包括: 第一接收裝置(201),用于接收來自客戶端的存儲位置及授權請求,用于請求待訪問文 件的數(shù)據(jù)塊的存儲位置和相應的授權訪問控制信息; 確定裝置,用于基于所述存儲位置及授權請求來確定待訪問數(shù)據(jù)塊的存儲位置; 認證裝置(202),用于基于所述存儲位置與授權請求對該存儲位置及授權請求進行認 證; 授權生成裝置(203),用于當對該存儲位置與授權請求的認證通過,生成基于該存儲位 置及授權請求的授權訪問控制信息; 第一響應裝置(204),用于將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的授權訪問控 制信息提供給所述客戶端。
9. 根據(jù)權利要求8所述的數(shù)據(jù)庫管理裝置,其中,該數(shù)據(jù)庫管理裝置還包括: 第二接收裝置(205),用于接收來自數(shù)據(jù)存儲裝置的驗證請求,其中,該驗證請求用于 請求對來自客戶端的數(shù)據(jù)訪問請求進行驗證; 第一驗證裝置(206),用于根據(jù)從所述驗證請求中提取出的來自該客戶端的授權訪問 控制信息,對該驗證請求進行驗證; 第二響應裝置(207),用于當驗證通過,向所述數(shù)據(jù)存儲裝置發(fā)送驗證通過消息。
10. 根據(jù)權利要求8或9所述的數(shù)據(jù)庫管理裝置,其中,所述授權生成裝置(203)包括: 授權生成模塊(2031),用于當對該存儲位置及授權請求的認證通過,生成基于該存儲 位置及授權請求的授權訪問控制信息; 加密模塊(2032),用于利用預定密鑰對所生成授權訪問控制信息進行加密,以獲得加 密后的授權訪問控制信息; 其中,第一響應裝置(204)還用于將所請求的數(shù)據(jù)塊的存儲位置以及所述對應的加密 后的授權訪問控制信息提供給所述客戶端。
11. 根據(jù)權利要求8至10中任一項所述的數(shù)據(jù)庫管理裝置,其中,所述數(shù)據(jù)庫管理裝置 還包括: 第三接收裝置(208),用于接收來自數(shù)據(jù)存儲裝置的訪問控制權限請求,其中包括授權 訪問令牌標識,用于請求與該令牌標識對應的訪問控制權限; 權限查詢裝置(209),用于根據(jù)該訪問控制權限請求中的令牌標識查詢與之對應的訪 問控制權限; 第三響應裝置(210),用于將訪問控制權限發(fā)送給所述數(shù)據(jù)存儲裝置。
12. -種用于提供數(shù)據(jù)訪問的數(shù)據(jù)存儲裝置,其中,該方法包括 第四接收裝置(301,301 '),用于接收來自客戶端的數(shù)據(jù)訪問請求,該數(shù)據(jù)訪問請求包 括待訪問數(shù)據(jù)塊的存儲位置以及對應的授權訪問控制信息; 獲取裝置(302,302'),用于從來自客戶端的數(shù)據(jù)訪問請求中獲取待訪問數(shù)據(jù)塊的存儲 位置信息、授權訪問控制信息及訪問控制權限; 第二驗證裝置(303,303'),用于根據(jù)從所述數(shù)據(jù)訪問請求中提取出的授權訪問控制信 息,對該數(shù)據(jù)訪問請求進行驗證; 訪問操作裝置(304,304 '),用于當驗證通過,根據(jù)該數(shù)據(jù)訪問請求中的待訪問數(shù)據(jù)塊 的存儲位置與訪問控制權限來對所述待訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
13. 根據(jù)權利要求12所述的方法,其中,所述第二驗證裝置(303)包括 驗證請求模塊(3031 '),用于發(fā)送驗證請求給數(shù)據(jù)庫管理裝置,其中,該驗證請求包含 由所述數(shù)據(jù)訪問請求中提取的授權訪問控制信息; 驗證接收模塊(3032 '),用于接收來自數(shù)據(jù)庫管理裝置的驗證通過消息; 其中,所述訪問操作裝置(304 ')用于當接收到來自數(shù)據(jù)庫管理裝置的驗證通過消息 時,根據(jù)該數(shù)據(jù)訪問請求中的待訪問數(shù)據(jù)塊的存儲位置與對應的訪問控制權限來對所述待 訪問的數(shù)據(jù)塊執(zhí)行相應的訪問操作。
14. 根據(jù)權利要求12至13中任一項所述的數(shù)據(jù)存儲裝置,其中,所述對應的授權訪問 控制信息包括授權訪問令牌標識,其中,該獲取裝置(302,302 ')還包括: 權限請求模塊(3021,3021'),用于向數(shù)據(jù)庫管理裝置發(fā)送權限請求消息,其中,該權限 請求消息包括該令牌標識,用于請求該令牌標識對應的訪問控制權限; 權限接收模塊(3022,3022 '),用于接收來自數(shù)據(jù)庫管理裝置的請求響應消息,其中包 含該令牌標識對應的訪問控制權限。
15. -種用于提供數(shù)據(jù)訪問的數(shù)據(jù)庫系統(tǒng),其中,該數(shù)據(jù)庫系統(tǒng)包括一個或多個如權利 要求8至11中任一項所述的數(shù)據(jù)庫管理裝置以及一個或多個如權利要求12至14中任一 項所述的數(shù)據(jù)存儲裝置。
【文檔編號】G06F17/30GK104216907SQ201310217403
【公開日】2014年12月17日 申請日期:2013年6月2日 優(yōu)先權日:2013年6月2日
【發(fā)明者】胡志遠, 孫群英, 駱志剛, 萬永根 申請人:上海貝爾股份有限公司