2011-10-26 71 views
7

因此,Apex擁有「工作空間」,可以讓您創建三種類型的用戶 - 所有這些都是組織內部的本質內容。另外,Apex的個人網站的開發者似乎沒有辦法爲他的網站提供「用戶」。Oracle Apex中的授權和用戶角色?

我錯過了什麼嗎?

我需要能夠讓外部(業務)用戶能夠訪問網站的某些功能,例如,會計只能看到頁面A和B,而管理人員可以看到A,B和C.

我需要能夠擁有不同程度的訪問權限的幾組人。

這隻能通過創建工作區/組完成?或者可以在我的網站上內部完成?

回答

7

儘管APEX有一個名爲「Groups」的內置用戶管理概念,但我必須承認我從未使用它,並且快速閱讀文檔並不能讓我清楚如何使用它們來控制訪問但爲此請參閱Tom's answer)。

您可能需要在數據庫中創建用戶/角色表,並將這些表與APEX授權方案結合使用以控制對頁面的訪問。

return my_auth_pkg.is_authorized (p_user => :app_user, 
            p_app_id => :app_id 
            p_page_id => :app_page_id); 

你會再落實包來查找用戶的權限,並決定是否返回TRUE或FALSE爲:類型的單一授權方案「PL/SQL函數返回布爾」可以用函數體中創建應用程序和頁面ID。 enter image description here

或者你可以只執行SQL檢查訪問直接在授權方案: enter image description here

(NB「user_roles」和「role_pages」的名字,我做出了決定,代表表)

+0

上述代碼到底在哪裏? – antonpug

+0

當您創建APEX授權方案時,您應該將其輸入到APEX授權方案的「功能體」屬性中。 –

+0

啊好的。所以這也是我創建檢查來查看我的數據庫表是否包含正確信息的地方? – antonpug

6

我只是想擴大Tony's answer,這本身就是正確的。我只是想向你展示另一種方式,我認爲這對於初學者來說更容易,並且省略了表格的創建。

如果您的應用程序使用Apex作爲身份驗證方案,那麼您的用戶將通過管理工作區本身進行管理。您可以創建,編輯和刪除用戶,但您也可以定義組,並將用戶鏈接到組。您可以創建幾個「最終用戶」類型的用戶,並定義幾個組,如「高管」。

Apex users and groups Creation of a group 當你創建組,去要分配這個組的用戶,和組添加到用戶

Adding a group to a user

的羣體一旦你的設置,你仍然需要授權方案。事實上,您仍然需要一些pl/sql知識,但由於使用了一些便利的API工作,可以將代碼保持在最低限度。 Defining an authorization based on apex groups current_user_in_group做它說:它檢查當前用戶,如果他說組指派。隨着一些擴展使用一些簡單的IF結構,您可以將其提升一些!

不是我完全推薦這種方法,我自己覺得它有點乏味,而且你需要有人去APEX實際維護用戶和他們的團體,但很可能這是在你的環境中可接受的。然而,你可以用它來開始。您可以非常輕鬆地切換身份驗證方案,並且通過更改授權方案以符合新的身份驗證方案,您可以輕鬆快速地對此進行調整。當然,這取決於你的優先級和目標。

+1

+1好了,現在我知道如何使用內置組!我在回答之前查看了apex_util文檔,但未能看到該功能。只是一個觀察:表達式1中的代碼可以簡化爲簡單; 'return apex_util.current_user_in_group(p_group_name =>'Executives');' –

+0

我在這裏實現了你的答案Tom,它確實有效地限制訪問。事實上,我無法再進入登錄頁面。 XD我該如何解決這個問題?我應該注意到,我在應用程序級別應用了授權方案,而不是頁面級別。我是否必須在應用程序級別關閉授權,並真正完成並限制每個頁面的訪問權限? – TraxusIV

+1

@TraxusIV哇,對不起,遲到的迴應!我認爲這可能與你的頂點版本有關,並且更高版本的頂點不應該再這樣做(我相信)。可能從4.2開始。除此之外,是的,你需要直接分配。不要擔心,您可以通過轉到實用程序>右側邊欄上的跨頁面實用程序>所有頁面的網格編輯來相對輕鬆地完成此操作。您可以輕鬆地爲所有頁面更改授權方案。不要忘記保存! :) – Tom

0

授權是確定是否允許認證/識別的人員訪問資源或執行操作的過程。它基於分配給用戶的一組特權或角色。例如,在Oracle數據庫中,管理員有權調度作業,而用戶不能。 授權與認證有什麼不同? 經常認證和授權一起工作。換句話說,授權遵循認證。 認證決定了你是誰? 授權決定你可以做什麼?