사용자 계정 삭제

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

사용자는 다음과 같이 GitLab 인스턴스에서 삭제될 수 있습니다:

  • 사용자 본인.
  • 관리자.
note
사용자를 삭제하면 해당 사용자 네임스페이스의 모든 프로젝트가 삭제됩니다.

자신의 계정 삭제

  • 사용자가 자신의 계정을 삭제한 시점과 사용자 기록이 삭제되는 사이에 지연이 발생하며, 이는 GitLab 16.0에서 도입된 delay_delete_own_user라는 플래그로 제어됩니다. GitLab.com에서는 기본적으로 활성화되어 있습니다.

Self-managed GitLab에서는 기본적으로 이 기능이 제공되지 않습니다. 사용 가능하게 하려면 관리자가 delay_delete_own_user라는 기능 플래그를 활성화해야 합니다. GitLab.com에서는 이 기능이 제공됩니다. GitLab Dedicated에서는 이 기능이 제공되지 않습니다.

GitLab.com에서는 사용자가 자신의 계정을 삭제한 후 계정이 삭제될 때까지 7일이 걸립니다. 이 기간 동안:

  • 해당 사용자는 차단됩니다.
  • 동일한 사용자 이름으로 새 계정을 만들 수 없습니다.

    note
    7일이 경과한 후에는 누구나 이전에 사용한 사용자 이름으로 사용자 계정을 생성할 수 있습니다. 따라서 7일 후에 해당 사용자 이름으로 새 계정을 생성할 수 있다고 가정해서는 안 됩니다. 새 계정이 다른 사용자에게 사용될 수 있습니다.

    먼저 계정에서 해당 이메일 주소를 제거하면
    동일한 이메일 주소로 새 계정을 생성할 수 있습니다.

다음은 한 시간 이내에 삭제됩니다:

  • 문제, 댓글, 노트, 병합 요청 또는 스니펫이 없는 계정.
  • 유료 네임스페이스에 있는 계정.

사용자로서 자신의 계정을 삭제하려면:

  1. 왼쪽 사이드바에서 자신의 아바타를 선택합니다.
  2. 프로필 편집을 선택합니다.
  3. 왼쪽 사이드바에서 계정을 선택합니다.
  4. 계정 삭제를 선택합니다.

자신의 계정을 삭제할 수 없는 경우 개인 데이터 요청을 제출하여 귀하의 account 및 데이터를 GitLab에서 삭제하도록 요청할 수 있습니다.

동일한 이메일 주소로 새 계정 만들기

GitLab.com에서는 사용자가 자신의 계정을 삭제한 시점과 계정이 삭제되는 시간 사이 동안 동일한 이메일 주소나 사용자 이름으로 새 계정을 만들 수 없습니다.

동일한 이메일 주소로 새 계정을 만들려면 계정을 삭제하기 전에:

  1. 보조 이메일 주소를 추가합니다.
  2. 이 새로운 보조 이메일 주소로 기본 이메일 변경합니다.
  3. 이제 보조가 된 이메일 주소를 제거합니다.
  4. 자신의 계정 삭제합니다.

이제 원래의 기본 이메일 주소와 동일한 이메일 주소로 새 계정을 생성할 수 있습니다.

사용자 및 사용자 기여 삭제

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자로서 사용자 계정을 삭제하려면:

  1. 왼쪽 사이드바 하단에서 관리를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 사용자를 선택합니다.
  4. 계정 탭에서 다음 중 하나를 선택합니다:
    • 사용자 삭제: 사용자를 삭제하지만 해당 연관 기록은 유지합니다. 선택한 사용자가 그룹의 유일한 소유자인 경우 이 옵션을 사용할 수 없습니다.
    • 사용자 및 기여 삭제: 사용자를 삭제하고 해당 연관 기록도 삭제합니다. 이 옵션은 사용자가 그룹의 유일한 직접 소유자인 그룹의 모든 그룹(및 이 그룹 내의 프로젝트)을 제거합니다. 상속된 소유권은 적용되지 않습니다.
caution
사용자 및 기여 삭제 옵션을 사용하면 의도보다 더 많은 데이터가 삭제될 수 있습니다. 추가 세부 정보를 위해 연관 기록을 참조하세요.

관련 기록

사용자를 삭제할 때, 다음 중 하나를 선택할 수 있습니다:

  • 사용자만 삭제하고 기여를 시스템 전체의 “Ghost User”로 이동합니다:
    • @ghost는 모든 삭제된 사용자의 기여를 위한 컨테이너 역할을 합니다.
    • 사용자의 프로필과 개인 프로젝트는 Ghost User로 이동하는 대신 삭제됩니다.
  • 사용자와 그들의 기여를 삭제합니다. 여기에는 다음이 포함됩니다:

두 경우 모두, 커밋은 사용자 정보를 유지하며, 그에 따라 Git 리포지토리 내 데이터 정합성을 보장합니다.

삭제의 대안은 사용자를 차단하는 것입니다.

사용자가 남용 신고 또는 스팸 로그에서 삭제될 때, 이러한 관련 기록은 항상 삭제됩니다.

연관된 기록 삭제 옵션은 APIAdmin 영역에서 요청할 수 있습니다.

경고: 사용자 승인은 사용자 ID와 연결됩니다. 다른 사용자의 기여는 연결된 사용자 ID가 없습니다. 사용자를 삭제하고 그들의 기여를 “Ghost User”로 이동할 경우, 승인된 기여는 누락되거나 유효하지 않은 사용자 ID를 참조합니다. 사용자를 삭제하는 대신 차단, 금지 또는 비활성화하는 것을 고려하세요.

자가 관리 인스턴스에서 루트 계정 삭제

Offering: Self-managed

경고: 루트 계정은 시스템에서 가장 특권이 있는 계정입니다. 루트 계정을 삭제하면 인스턴스 Admin 영역에 대한 접근을 잃을 수 있으며, 다른 관리자가 인스턴스에 없는 경우 위험할 수 있습니다.

UI 또는 GitLab Rails 콘솔을 사용하여 루트 계정을 삭제할 수 있습니다.

루트 계정을 삭제하기 전에:

  1. 루트 계정을 위해 생성한 프로젝트 또는 개인 접근 토큰이 있는 경우, 필요한 권한이나 소유권을 루트 계정에서 새 관리자에게 이전하세요.

  2. 자가 관리 인스턴스를 백업하세요.

  3. 루트 계정을 비활성화하거나 차단하는 것을 고려하세요.

UI 사용

사전 요구 사항:

  • 자가 관리 인스턴스의 관리자가 되어야 합니다.

루트 계정을 삭제하려면:

  1. Admin 영역에서 관리자 접근이 있는 새 사용자 생성하세요. 이는 루트 계정을 삭제하는 것과 관련된 위험을 완화하면서 인스턴스에 대한 관리자 접근을 유지하는 것을 보장합니다.

  2. 루트 계정 삭제.

GitLab Rails 콘솔 사용

경고:
데이터를 변경하는 명령은 올바른 조건에서 실행되지 않으면 손상을 초래할 수 있습니다. 항상 테스트 환경에서 먼저 명령을 실행하고 복원할 준비가 된 백업 인스턴스를 준비하세요.

전제 조건:

  • GitLab Rails 콘솔에 접근할 수 있어야 합니다.

루트 계정을 삭제하려면 Rails 콘솔에서:

  1. 다른 기존 사용자에게 관리자 권한 부여:

    user = User.find(username: 'Username') # 또는 User.find_by(email: 'email@example.com')를 사용하여 이메일로 찾기
    user.admin = true
    user.save!
    

    이렇게 하면 루트 계정을 삭제하는 것과 관련된 위험을 완화하면서 인스턴스에 대한 관리자 접근 권한을 유지할 수 있습니다.

  2. 루트 계정을 삭제하려면 다음 중 하나를 수행하세요:

    • 루트 계정 차단:

      # 현재 관리자 사용자여야 합니다
      current_user = User.find(username: 'Username')
      
      # 차단할 루트 사용자입니다
      user = User.find(username: 'Username')
      
      ::Users::BlockService.new(current_user).execute(user)
      
    • 루트 사용자 비활성화:

      # 현재 관리자 사용자여야 합니다
      current_user = User.find(username: 'Username')
      
      # 비활성화할 루트 사용자입니다
      user = User.find(username: 'Username')
      
      ::Users::DeactivateService.new(current_user, skip_authorization: true).execute(user)
      

문제 해결

사용자를 삭제하면 PostgreSQL null 값 오류 발생

사용자가 삭제되지 않고 다음과 같은 오류가 발생하는 알려진 문제가 있습니다:

ERROR: null value in column "user_id" violates not-null constraint

오류는 PostgreSQL 로그관리 영역의 백그라운드 작업 보기재시도 섹션에서 찾을 수 있습니다.

삭제되는 사용자가 iterations 기능을 사용한 경우, 예를 들어 이슈를 반복 작업에 추가한 경우, 사용자를 삭제하기 위해 문서화된 우회 방법을 사용해야 합니다.