ServiceNow 中的权限设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServiceNow 中的权限设置相关的知识,希望对你有一定的参考价值。

    所谓权限控制,无非就是限制系统中的部分用户增删改查表或者字段的过程。

    在新建一个table时,我们会看到一个 ‘Create access controls’和’User role‘ ,如下图:
    ![](https://s1.51cto.com/images/blog/201901/09/ee4a41d5a51dba5700e54a915878916e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

    勾选了’Create access controls‘后,需要新建或是选择一个已有的角色。
    引用官方文档的介绍:
    ”Create access controls:Select the check box and then complete the User role field to create basic security rules for the table“
    ”User role: Enter a new name or select an existing user role that is required to access this table. This option is available only when the Create access controls check box is selected.“
    很好理解,这个带有这个 role 的 user 才可以 控制该表。

    每一个table ,都对应的可以设置自身的ACL
    ACL的Role required: security_admin
    具体的设置方法与说明请参考官方文档:
    https://docs.servicenow.com/bundle/kingston-platform-administration/page/administer/contextual-security/concept/acl-rule-types.html

    ok,下面说下遇到的问题的总结。
    在实例开发中,如果没有role的 user不能查看相关数据,而admin或其他role的user可以查看到,那么我们就肯定可以断定,是table或者table里的field设置了ACL。
    Example 1:
    在某些list中,普通user看不到部分record,说明该user不满足这部分record的ACL里面的role设置或者condition设置。
    Example 2:
    在form中,普通user看不到部分Fields,同上,该user不满足field相应的ACL。
    Example 3:
    有时候,user明明可以看到field,却查看不到该field的值。这种情况,一般是因为该field是Reference类型,需要从其他table查询数据,所以,对应的是user不满足Reference的table的相应的ACL.
    分享一个案例:
    Portal里的table list 里对于普通user始终无法显示A field 的值。但是后台系统的table list 却能显示这个field的值,
    又因为没有对A field设置特殊的ACL,所以理论上应该所有人都可以read,但事实在portal的widget查询数据后,怎么都显示不出来。最后发现A field是Reference类型,于是我去查看了reference对应的table的ACL,果然是普通user不满足这个ACL。

以上是关于ServiceNow 中的权限设置的主要内容,如果未能解决你的问题,请参考以下文章

Servicenow:表格中的自定义附件小部件未在提交时上传文档

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

ServiceNow代码规范

ServiceNow如何在Fufiller页面端实现String的多行与单行转换

片段中的请求权限

片段中的请求权限不显示对话框