现象
使用测试组提供的账号,在Studio编译csp,会报错,但不影响实际使用。
Detected -1 errors during compilation in 0.575s.
ERROR #7918: Insufficient privileges to invoke the 'RemoveFilesFromCaches' method
> ERROR #6084: Unknown errors detected, but no error code reported
原因分析
查找IRIS文档,发现调用RemoveFilesFromCaches需要%Admin_Manage资源的写权限
IRIS的资源权限是通过角色授予的,而一个用户又可以有多个角色,所以只需要使用的用户所拥有的角色拥有%Admin_Manage资源的写权限即可。
使用_system用户登录数据库管理门户,发现自己使用的用户所拥有的角色并没有%Admin_Manage资源的权限,所以编译会报错。
解决方法
方法1:换个用户如 _system
方法2:为当前使用的用户增加一个拥有%Admin_Manage资源的写权限的角色,如%Manager
System > Security Management > Users > Edit User - (security settings)
ps:测试发现,增加角色后,用户需要重新打开studio才生效。
方法3:给当前用户的当前角色增加资源%Admin_Manage资源的写权限
System > Security Management > Roles > Edit Role - (security settings)
ps:%Admin_Manage这个资源的权限列好像只能设置为U。
关键词
IRIS、#7918、RemoveFilesFromCaches、%Admin_Manage