應用
要將 Application 與資料庫中的某些內容相關聯,有三個主要部分:
應用程式許可權: 應用程式許可權描述許可權,如 SELECT
,INSERT
,UPDATE
,DELETE
,…應用程式許可權可以概括為聚合許可權。
XS$PRIVILEGE(
name=>'privilege_name'
[, implied_priv_list=>XS$NAME_LIST('"SELECT"', '"INSERT"', '"UPDATE"', '"DELETE"')]
)
XS$PRIVILEGE_LIST(
XS$PRIVILEGE(...),
XS$PRIVILEGE(...),
...
);
申請使用者:
簡單應用使用者:
BEGIN
SYS.XS_PRINCIPAL.CREATE_USER('user_name');
END;
直接登入申請使用者:
BEGIN
SYS.XS_PRINCIPAL.CREATE_USER(name => 'user_name', schema => 'schema_name');
END;
BEGIN
SYS.XS_PRINCIPAL.SET_PASSWORD('user_name', 'password');
END;
CREATE PROFILE prof LIMIT
PASSWORD_REUSE_TIME 1/4440
PASSWORD_REUSE_MAX 3
PASSWORD_VERIFY_FUNCTION Verify_Pass;
BEGIN
SYS.XS_PRINCIPAL.SET_PROFILE('user_name', 'prof');
END;
BEGIN
SYS.XS_PRINCIPAL.GRANT_ROLES('user_name', 'XSONNCENT');
END;
(可選的:)
BEGIN
SYS.XS_PRINCIPAL.SET_VERIFIER('user_name', '6DFF060084ECE67F', XS_PRINCIPAL.XS_SHA512“);
END;
應用角色:
常規應用角色:
DECLARE
st_date TIMESTAMP WITH TIME ZONE;
ed_date TIMESTAMP WITH TIME ZONE;
BEGIN
st_date := SYSTIMESTAMP;
ed_date := TO_TIMESTAMP_TZ('2013-06-18 11:00:00 -5:00','YYYY-MM-DD HH:MI:SS');
SYS.XS_PRINCIPAL.CREATE_ROLE
(name => 'app_regular_role',
enabled => TRUE,
start_date => st_date,
end_date => ed_date);
END;
動態應用程式角色:(基於身份驗證狀態啟用動態)
BEGIN
SYS.XS_PRINCIPAL.CREATE_DYNAMIC_ROLE
(name => 'app_dynamic_role',
duration => 40,
scope => XS_PRINCIPAL.SESSION_SCOPE);
END;
預定義的應用程式角色:
定期:
XSPUBLIC
XSBYPASS
XSSESSIONADMIN
XSNAMESPACEADMIN
XSPROVISIONER
XSCACHEADMIN
XSDISPATCHER
動態:(取決於應用程式使用者的身份驗證狀態)
DBMS_AUTH
:(直接登入或其他資料庫身份驗證方法)EXTERNAL_DBMS_AUTH
:(直接登入或其他資料庫身份驗證方法,使用者是外部的)DBMS_PASSWD
:(用密碼直接登入)MIDTIER_AUTH
:(通過中間層應用程式進行身份驗證)XSAUTHENTICATED
:(直接或中間層申請)XSSWITCH
:(使用者從代理使用者切換到應用程式使用者)