Oracle Data Safe看不到用户风险分,首要检查DATA_SAFE_ADMIN角色是否显式授予且带ADMIN OPTION、会话是否重连、敏感列扫描策略是否启用、OCI凭证配置是否正确、扫描日志是否有失败记录。
Oracle Data Safe里看不到用户风险分,先检查DATA_SAFE_ADMIN角色是否真生效
没权限就看不到任何评估结果,这是最常卡住的地方。不是登录了dba账号就行,必须显式授予data_safe_admin角色,且需带admin option才能执行风险评估。
-
GRANT DATA_SAFE_ADMIN TO your_user WITH ADMIN OPTION;—— 少了WITH ADMIN OPTION,后续无法授权给其他分析员 - 角色授予后要重新连接会话,当前连接不自动继承新权限
- 确认角色已激活:
SELECT * FROM SESSION_ROLES WHERE ROLE = 'DATA_SAFE_ADMIN';,返回空行说明没生效
敏感数据识别失败,重点看ORACLE_DATA_DICTIONARY扫描策略是否启用
Oracle Data Safe默认不自动扫描数据字典里的列级敏感标签,得手动开开关,否则所有“身份证号”“手机号”字段都算作普通文本,风险分直接归零。
- 进Console → Data Safe → Target Databases → 选目标库 →
Configuration→ 打开Scan data dictionary for sensitive columns - 该选项只影响新扫描任务,已有扫描结果不会自动刷新,需手动触发
Rescan - 若用自定义敏感类型(比如
CUSTOM_PII),必须确保对应正则或词典已部署到目标库的DBA_SENSITIVE_COLUMNS视图中,否则识别率极低
云端权限分析报ORA-40577: Cloud service not available,其实是OCI_CONFIG_FILE路径或权限不对
这个错误和网络无关,纯属本地配置问题。Data Safe调用OCI SDK时读不到有效凭证,就会退回到“仅数据库内部分析”,导致权限链路缺失(比如看不到IAM策略对DB用户的间接授权)。
-
OCI_CONFIG_FILE环境变量必须指向一个可读的config文件,不能是相对路径;推荐用绝对路径:/home/oracle/.oci/config - 文件权限必须是
600(chmod 600 ~/.oci/config),否则SDK直接拒绝加载 - 检查
[DEFAULT]段落里fingerprint、key_file路径是否正确,key_file也必须是绝对路径且可读
风险分长期不更新,别只盯着SCAN_INTERVAL,先查DBA_DATA_SAFE_SCAN_LOG
界面显示“上次扫描3天前”,但日志里可能早有失败记录。自动扫描不是“设了间隔就一定跑”,尤其在资源紧张或审计策略变更后容易静默失败。
- 查最近10条扫描日志:
SELECT SCAN_TYPE, STATUS, ERROR_MESSAGE FROM DBA_DATA_SAFE_SCAN_LOG ORDER BY START_TIME DESC FETCH FIRST 10 ROWS ONLY; - 常见失败原因:临时表空间不足(
ORA-1652)、DBA_TAB_PRIVS访问被审计策略拦截、或目标库处于READ ONLY状态 - 手动触发扫描用
EXEC DBMS_DATA_SAFE.START_RISK_ASSESSMENT_SCAN;,比等自动轮询更可控
真正难的不是点几下按钮,而是每次改动配置后,得去三个地方交叉验证:角色是否活、扫描策略是否真启、OCI凭证是否被SDK认出来。少盯一个,风险分就是假的。










