保护 Oracle REST-Data-Services 中以 */private 结尾的每个端点
Secure every endpoint ending with */private in Oracle REST-Data-Services
我正在使用 Oracle Rest-Data-Services 将多个 PL/SQL-APIs 导出为使用 REST 的 Web 服务。因此,每个 PL/SQL-Package 都是一个 ORDS 模块,并且应该有一个以 */private
结尾的模板,必须对其进行保护,以便只有管理员用户可以调用它。
我尝试创建以下权限。
DECLARE
l_roles_arr OWA.vc_arr;
l_patterns_arr OWA.vc_arr;
l_modules_arr OWA.vc_arr;
BEGIN
ORDS.create_role(p_role_name => 'private_role');
l_roles_arr(1) := 'private_role';
l_patterns_arr(1) := '*/private';
-- select name bulk collect into l_modules_arr from user_ords_modules;
ORDS.define_privilege (
p_privilege_name => 'private_priv',
p_roles => l_roles_arr,
p_patterns => l_patterns_arr,
--p_modules => l_modules_arr,
p_label => 'private',
p_description => 'private');
COMMIT;
END;
这没有任何效果,并且对 */private
的未授权调用仍然是可能的。当我取消对注释行的注释时,所有对其他端点的调用都必须经过授权。
是否可以定义这样的特权模式?
我在 api 文档中找到了答案。
Glob Parameter
A Glob Parameter is denoted by the wildcard Modifier (the ‘*’ character). The wildcard Modifier MUST appear at the end of the pattern and MUST be preceded by the path separator. Only a single Glob Parameter is permitted in a pattern. A Glob Parameter MUST NOT occur in the same pattern as a Named Parameter.
不幸的是,通配符 *
必须位于模式的末尾。
我正在使用 Oracle Rest-Data-Services 将多个 PL/SQL-APIs 导出为使用 REST 的 Web 服务。因此,每个 PL/SQL-Package 都是一个 ORDS 模块,并且应该有一个以 */private
结尾的模板,必须对其进行保护,以便只有管理员用户可以调用它。
我尝试创建以下权限。
DECLARE
l_roles_arr OWA.vc_arr;
l_patterns_arr OWA.vc_arr;
l_modules_arr OWA.vc_arr;
BEGIN
ORDS.create_role(p_role_name => 'private_role');
l_roles_arr(1) := 'private_role';
l_patterns_arr(1) := '*/private';
-- select name bulk collect into l_modules_arr from user_ords_modules;
ORDS.define_privilege (
p_privilege_name => 'private_priv',
p_roles => l_roles_arr,
p_patterns => l_patterns_arr,
--p_modules => l_modules_arr,
p_label => 'private',
p_description => 'private');
COMMIT;
END;
这没有任何效果,并且对 */private
的未授权调用仍然是可能的。当我取消对注释行的注释时,所有对其他端点的调用都必须经过授权。
是否可以定义这样的特权模式?
我在 api 文档中找到了答案。
Glob Parameter
A Glob Parameter is denoted by the wildcard Modifier (the ‘*’ character). The wildcard Modifier MUST appear at the end of the pattern and MUST be preceded by the path separator. Only a single Glob Parameter is permitted in a pattern. A Glob Parameter MUST NOT occur in the same pattern as a Named Parameter.
不幸的是,通配符 *
必须位于模式的末尾。