管理角色和权限
在 TeamCity 中,用户的访问级别是通过为用户分配不同的 角色 来处理的,从而授予他们相应的 权限。
一个 权限 是执行特定操作的 授权,例如,运行构建或修改构建配置设置。
一个 角色 是一组可以授予用户的 权限,从而可以在一个或所有项目中控制对项目和 UI 中各种功能的访问。
授权模式
TeamCity 授权支持两种模式:简单和按项目。
在 简单 模式中,只有三种授权级别:访客、已登录用户和管理员。
在 per-project 模式下,您可以在项目或服务器范围内为用户分配角色。 角色中的权限集是可编辑的。
在项目级别授予的角色内的权限会自动传播到该项目的所有子项目中。
具有 查看项目及其所有父项目 权限不仅可以查看项目(及其子项目),还能查看其父项目。
更改授权模式
除非明确配置,否则 TeamCity Professional 会使用简单授权模式,而 TeamCity Enterprise 则在每个项目中使用。
要更改授权模式,请前往 管理 | 认证 并启用/禁用 启用每个项目的权限 选项。
简单授权模式
Role(角色) | 描述 |
---|---|
管理员 | 无任何限制的用户;在每个项目授权模式中,对应于 System Administrator 角色。 |
已登录用户 | 对应于在每个项目授权模式中授予所有项目的默认 Project Developer 角色。 |
Guest user(访客用户) | 对应于在每个项目授权模式中为所有项目授予的默认 Project Viewer 角色。 |
每个项目的授权模式
角色由管理员在每个项目的基础上分配给用户:用户在不同的项目中可以拥有不同的角色,因此,权限是基于项目的。 用户可以在特定项目中,或在所有可用的项目中担任角色,或者完全没有角色。 您可以将用户帐户与一组角色关联。 一个角色也可以被授予给一个用户组。 这意味着该角色会自动授予包含在该组中的所有用户(无论是直接还是通过其他组)。
您可以在 Administration | Roles 中添加角色并为其分配权限。 点击任一角色下的 添加权限,以查看所有可用权限的列表,选择所需的权限,然后点击 添加。 要添加多个权限,选择它们时请按住 CTRL 键。
默认情况下,TeamCity 提供以下每个项目的角色:
Role(角色) | 描述 |
---|---|
系统管理员 | 没有权限限制,并拥有所有项目管理员的权限。 可以创建和管理用户帐户,更改 HTTPS 设置,授权构建代理,设置项目和构建配置,编辑 TeamCity 服务器设置,管理 TeamCity 许可证,配置服务器数据清理规则,更改 VCS 根目录等等。 |
项目管理员 | 您可以自定义项目的一般设置和构建配置的设置,为项目用户分配角色,创建子项目,在不添加修改用户配置文件和角色的权限的情况下更改项目中用户的 VCS 用户名。 拥有所有 项目开发者 的权限。 项目管理员只能分配角色和修改他们管理的项目所对应的群组。 例如,项目A的管理员既不能授予用户任何项目B的角色,也不能将他们添加到具有项目B特定权限的组中;只有项目B的管理员(或系统管理员)才能做到这一点。 启用了 "在项目中更改用户/用户组通知规则" 权限的情况下,可以编辑分配给他们项目的用户和用户组的通知规则。 |
项目开发者 | 通常会将更改提交到项目中。 可以启动/停止构建,重新排序构建队列中的构建,标记构建源码,查看 agent 详细信息,开始调查失败的构建。 请注意,默认情况下,此角色具有 自定义构建参数 和 使用自定义补丁更改构建源代码 的权限。 这可能会间接提供修改每次构建的配置/环境的途径(参阅 更多详情)。 |
项目浏览者 | 拥有对项目的只读访问权限,只能查看项目、其父项目以及子项目。 没有权限查看 view agent details。 |
代理管理器 |
当启用每个项目的权限时,服务器管理员可以在 TeamCity 管理网页用户界面中,或者通过修改存储在 <TeamCity 数据目录>/config
目录的 roles-config.xml
文件,来修改角色、删除角色,或添加具有任何权限组合的新角色。 在为用户分配角色时,Web 用户界面中的 查看角色权限 链接会显示每个角色的权限列表,以符合其当前的配置。
项目级别的 Agent 管理权限
TeamCity 有以下项目级权限以在代理上执行任务:
启用/禁用与项目关联的代理
启动/停止项目的云代理
更改项目的 agent 运行配置策略
管理项目代理机器(例如,重启,查看代理日志)
移除项目代理
授权项目代理
所有的项目级代理管理权限默认添加到 项目管理员 角色中。
用户可以在所有属于某个 pool 的代理上执行由这些权限之一控制的任务,前提是此权限已在与此 pool 关联的所有项目中授予给用户。 例如,获得 “启用/禁用与项目关联的代理” 权限的用户可以在某些项目中启用或禁用属于相关项目池的代理,如果在与池关联的 所有项目 中都获得了权限。
管理角色
如果在您的安装中启用了每个项目的权限,您可以在 TeamCity UI 中查看现有的角色,修改它们,并在 管理 | 角色 页面上创建新的角色。 它允许:
创建新的角色。
删除现有角色。
向现有角色添加/删除权限。
包含 / 排除角色的权限。
请注意,角色设置是全局的。
权限继承
用户权限从父项目共享到其子项目,以及从父用户组共享到子组。
项目继承
假设一个项目 "Main" 有两个子项目:"Project A" 和 "Project B"。 每个项目都有相应的用户组:
Main Project Users" 组为其用户赋予 "Main" 项目的 "Project administrator" 角色。
"Group A" 和 "Group B" 为其用户在相应的子项目中赋予 "Project viewer" 角色。
被添加到 "Main Project Users" 和 "Group A" 的用户将在两个子项目中担任 "Project administrator" 角色,因为这个角色是从 "Main Project Users" 组继承来的。
组继承
当您将角色分配给用户组时,该组的所有子组都将获得相同的权限。 在 Administration | Groups 页面上,拥有继承角色的组在 "Roles" 列下显示 "N/M" 计数器。 "N "是直接分配给此群组的角色数量,而" M "是从父群组继承的角色数量。
在下图中,"Tier 3" 组从其父级 "Tier 1" 和 "Tier 2" 组中继承了两个角色。 由于此组没有直接分配的角色,所以其计数器是“0/2”。