VERIFY_GROUP_FOR_USER

VERIFY_GROUP_FOR_USER 函數會傳回一個值,指出指定的使用者是在使用者設定檔清單中,還是屬於 authorization-id-expression 引數清單所指定的任何群組使用者設定檔的成員。

讀取語法圖跳過視覺化語法圖VERIFY_GROUP_FOR_USER( SESSION_USERUSERCURRENT_USER , ,authorization-id-表示式 )
SESSION_USER 或 USER 或 CURRENT_USER
指定授權 ID。
authorization-id-expression
指定授權名稱的表示式。 未驗證現行伺服器上是否存在授權名稱。 authorization-id-expression 必須傳回任何內建字串或圖形字串資料類型的值。 每一個 authorization-id-expression 的值必須至少為 1 且小於或等於 10。

函數結果為大整數。 結果不能是空值。

如果第一個引數所代表的授權 ID 位於 authorization-id-expression清單中的任何位置,則結果的值為 1。 否則,結果為 0。

VERIFY_GROUP_FOR_USER 函數在連線內是固定的。 在連線之間,它不是決定性的。 可以在 CREATE MASK 或 CREATE PERMISSION 陳述式中參照它,以驗證對資料的存取權。

範例

假設表格 EMPLOYEE 存在,且已針對表格啟動直欄層次存取控制。 Alex (具有 QIBM_DB_SECADM 權限) 已建立下列直欄遮罩,以根據要求資訊的人員來控制針對社會保險號碼傳回的資訊。 只有在階段作業使用者是 MGR 群組設定檔的成員時,直欄遮罩才會傳回實際的社會保險號碼。 否則會傳回社會保險號碼的遮罩表示法。
CREATE MASK SSN_MASK
       ON EMPLOYEE
       FOR COLUMN SSN
   RETURN
     CASE 
       WHEN VERIFY_GROUP_FOR_USER(SESSION_USER,'MGR') = 1
            THEN SSN
       ELSE 'XXX-XX' CONCAT SUBSTR(SSN, 8,4)
     END
   ENABLE;
然後會發出 ALTER TABLE 陳述式,以啟動 EMPLOYEE 表格上的直欄遮罩:
ALTER TABLE EMPLOYEE
     ACTIVATE COLUMN ACCESS CONTROL;
COMMIT;
假設 Mary 是管理員,並且是 MGR 群組設定檔的成員。 Mary 發出下列陳述:
SELECT SSN FROM EMPLOYEE WHERE NAME = 'Tom';
SSN_MASK 直欄遮罩會套用至 SSN 直欄,以產生結果表格。 由於 Mary 是 MGR 群組設定檔的成員,因此結果表格包含 Tom 的實際社會保險號碼。
稍後, Mary 不再是管理員,並從 MGR 群組設定檔中移除。 她再次發出相同的查詢:
SELECT SSN FROM EMPLOYEE WHERE NAME = 'Tom';
如同之前一樣, SSN_MASK 直欄遮罩會套用至 SSN 直欄以產生結果表格。 此時結果表格會包含 Tom 's 社會保險號碼的遮罩版本,其中只會傳回實際號碼的最後 4 位數。 會針對其他數字傳回 ' X'。