You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle ORDS如何为所有以*/private结尾的端点配置访问控制权限

ORDS路径权限通配符配置问题解答

ORDS完全支持通配符模式定义权限规则,你配置不生效是通配符写法和参数使用错误导致的。

问题原因

  • 通配符格式错误:ORDS的路径匹配规则要求所有权限模式必须以/开头,且匹配多层路径需要用**通配符,你写的*/private不符合规则,系统无法识别匹配,所以权限规则没有生效。
  • p_modules参数不要赋值:该参数的作用是将指定模块下的所有端点都绑定到当前权限,不管路径规则是什么,所以你取消注释后整个模块的所有接口都需要鉴权,和你定义的路径规则无关。

修正后的配置代码

DECLARE
  l_roles_arr    OWA.vc_arr;
  l_patterns_arr OWA.vc_arr;
BEGIN
  -- 角色不存在则创建,已存在的话可以跳过这句避免报错
  ORDS.create_role(p_role_name => 'private_role');
  l_roles_arr(1)    := 'private_role';
  -- 正确的通配符写法:**匹配任意多层路径前缀,规则以/开头
  l_patterns_arr(1) := '/**/private';
  ORDS.define_privilege (
    p_privilege_name => 'private_priv',
    p_roles          => l_roles_arr,
    p_patterns       => l_patterns_arr,
    p_label          => 'private',
    p_description    => 'private endpoint access control');
  -- 刷新ORDS元数据缓存,让配置即时生效
  ORDS.REST_METADATA_CACHE_REFRESH();
  COMMIT;
END;
/

补充说明

  • 如果需要更精确的匹配,比如仅匹配模块下二级路径为private的,可以写/*/private,其中*只匹配单个路径段
  • 配置完成后可以通过查询USER_ORDS_PRIVILEGE_MAPPINGS视图确认权限规则是否正确录入

内容的提问来源于stack exchange,提问作者donvogel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:45:04