2015-08-31 44 views
0

我有一個帶有一些數據庫表和OData服務的SAP HANA XS服務器。我能夠連接到OData服務並讀取數據。只要我嘗試創建/更新/刪除數據,我會得到403 - Forbidden錯誤。
其實我的用戶有執行所有提到的操作(我使用HANA Studio中的SQL命令行創建數據)所需的權限。當我嘗試與SYSTEM用戶相同時,我得到相同的結果。SAP HANA XS引擎Odata服務不允許我創建/更新/刪除

回答

0

我猜你的OData服務被定義爲不允許修改數據。

SAP HANA Developer Guide

默認情況下,所有的實體集和協會OData服務是可寫的,這是他們可以用CREATE,UPDATE或DELETE的要求進行修改。但是,可以通過在OData服務定義中使用forbidden選項設置適當的關鍵字(創建,更新刪除)來阻止執行修改請求。以下用於SAP HANA XS的OData服務定義示例顯示如何防止對OData服務公開的表myTable進行任何修改。任何使用CREATE,UPDATE或DELETE請求修改指定表的嘗試都會導致HTTP響應狀態403 FORBIDDEN

service { 
    「sap.test::myTable」 
    create forbidden 
    update forbidden 
    delete forbidden; 
} 
1

如果您.xsaccess文件看起來像這樣:

{ 
    "prevent_xsrf": true, 
    ... 
} 

你有修改實體之前獲取的XSRF令牌。閱讀實體沒有工作。

這樣的令牌可以通過執行一個GET到服務端點來獲得,後面的標頭爲X-CSRF-Token=Fetch。該響應包含一個像這樣的標題X-CSRF-Token=13DC4988AEAA95...。如果您執行例如現在使用剛剛獲得的令牌進行POST,它將起作用。