删除用户账户
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
用户可以从极狐GitLab 实例中删除,方式如下:
- 用户自己删除。
- 管理员删除。
删除用户会删除该用户命名空间中的所有项目。
删除自己的账户
History
- 在极狐GitLab 16.0 中引入了用户自己删除账户和用户记录删除之间的延迟,使用名为 delay_delete_own_user 的功能标志 。在 JihuLab.com 上默认启用。
在极狐GitLab 私有化部署中,默认情况下此功能不可用。为了使其可用,管理员可以 [启用功能标记](../../../administration/feature_flags.md) 名为 `delay_delete_own_user`。在 JihuLab.com 上,此功能是可用的。在极狐GitLab 专用版中,此功能不可用。
在 JihuLab.com 上,从删除自己的账户到账户被删除需要七天。在此期间:
-
该用户被 阻止。
-
不能使用相同的用户名创建新账户。
七天时间结束后,任何用户都可以使用之前使用过的用户名创建用户账户。因此,您不应该假设在七天后能够使用该用户名创建新账户,因为它可能会被占用。如果您先从账户中删除电子邮件地址,可以 使用相同的电子邮件地址创建新账户。
以下内容将在一小时内删除:
- 没有议题、评论、备注、合并请求或代码片段的账户。
- 付费命名空间下的账户。
作为用户,删除自己的账户:
- 在左侧边栏中,选择您的头像。
- 选择 编辑资料。
- 在左侧边栏中,选择 账户。
- 选择 删除账户。
使用相同的电子邮件地址创建新账户
在 JihuLab.com 上,在 删除自己的账户和账户被删除之间的时间内, 不能使用相同的电子邮件地址或用户名创建新账户。
要使用相同的电子邮件地址创建新账户,在删除账户之前:
- 添加备用电子邮件地址 到您的账户。
- 将您的主要电子邮件更改为这个 新的备用电子邮件地址。
- 从您的账户中删除现在的备用电子邮件地址。
- 删除自己的账户。
现在,您可以使用原始主要电子邮件地址 创建新账户。
删除用户和用户贡献
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
作为管理员,删除用户账户:
- 在左侧边栏底部,选择 管理员。
- 选择 概览 > 用户。
- 选择一个用户。
- 在 账户 标签下,选择:
- 删除用户 仅删除用户但保留他们的 关联记录。如果 选择的用户是任何群组的唯一所有者,则不能使用此选项。
- 删除用户和贡献 删除用户及其关联记录。此选项也会删除用户作为群组唯一直接所有者的所有群组(以及这些群组中的项目)。继承的所有权不适用。
使用 **删除用户和贡献** 选项可能会导致删除超出预期的数据。有关详细信息,请参阅
[关联记录](#associated-records)。
关联记录
删除用户时,可以选择:
- 仅删除用户,但将贡献移动到系统范围的 "幽灵用户":
- @ghost 作为所有已删除用户贡献的容器。
- 用户的个人资料和个人项目被删除,而不是移动到幽灵用户。
- 删除用户及其贡献,包括:
在这两种情况下,提交保留 用户信息,因此在 Git 仓库中保持数据完整性。
删除的替代方法是 阻止用户。
当用户从 滥用报告 或垃圾日志中删除时,这些关联记录始终被删除。
删除关联记录选项可以在 API 中请求,也可以在 管理员 区域中请求。
用户批准与用户 ID 相关联。其他用户贡献没有关联的用户 ID。当您删除用户并将其贡献移至 "幽灵用户" 时,批准贡献会引用丢失或无效的用户 ID。与其删除用户,请考虑 [阻止](../../../administration/moderate_users.md#block-a-user)、[禁止](../../../administration/moderate_users.md#ban-a-user) 或 [停用](../../../administration/moderate_users.md#deactivate-a-user) 他们。
删除极狐GitLab 私有化部署实例上的 root 账户
- Offering: 私有化部署
root 账户是系统上权限最高的账户。删除 root 账户可能会导致无法访问实例的 [**管理员** 区域](../../../administration/admin_area.md),如果实例上没有其他管理员可用。
可以使用 UI 或 极狐GitLab Rails 控制台 删除 root 账户。
在删除 root 账户之前:
- 如果已为 root 账户创建任何 项目 或 个人访问令牌 并在工作流程中使用它们,请将任何必要的权限或所有权从 root 账户转移给新管理员。
- 备份极狐GitLab 私有化部署实例。
- 考虑 停用 或 阻止 root 账户。
使用 UI
先决条件:
- 必须是极狐GitLab 私有化部署实例的管理员。
要删除 root 账户:
- 在 管理员 区域,创建具有管理员访问权限的新用户。这确保您在删除 root 账户的同时保持对实例的管理员访问权限并降低相关风险。
- 删除 root 账户。
使用极狐GitLab Rails 控制台
更改数据的命令可能会在不正确或不合适的条件下运行时导致损坏。始终在测试环境中运行命令,并准备好备份实例以便恢复。
先决条件:
- 必须能够访问极狐GitLab Rails 控制台。
要删除 root 账户,请在 Rails 控制台中:
-
给另一个现有用户管理员访问权限:
rubyuser = User.find(username: 'Username') # 或使用 User.find_by(email: 'email@example.com') 通过电子邮件查找 user.admin = true user.save!这确保您在删除 root 账户的同时保持对实例的管理员访问权限并降低相关风险。
-
要删除 root 账户,请执行以下操作之一:
-
阻止 root 账户:
ruby1# 需要是当前管理员用户 2current_user = User.find(username: 'Username') 3 4# 这是我们要阻止的 root 用户 5user = User.find(username: 'Username') 6 7::Users::BlockService.new(current_user).execute(user) -
停用 root 用户:
ruby1# 需要是当前管理员用户 2current_user = User.find(username: 'Username') 3 4# 这是我们要停用的 root 用户 5user = User.find(username: 'Username') 6 7::Users::DeactivateService.new(current_user, skip_authorization: true).execute(user)
-
故障排除
删除用户导致 PostgreSQL 空值错误
有一个已知问题导致用户无法删除,并生成以下错误:
plaintextERROR: null value in column "user_id" violates not-null constraint
该错误可以在 PostgreSQL 日志 中找到,也可以在 管理员 区域的 后台作业视图 的 重试 部分中找到。