Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server에서 생성된 모든 사용자(Users) 조회하는 방법

SQL Server에서 생성된 모든 사용자 조회하기

SQL Server에서 간단한 쿼리만으로 데이터베이스에 생성된 모든 사용자(User)를 한 번에 확인할 수 있을까요? 답은 '예'입니다. SQL Server에는 sys.database_principals라는 시스템 카탈로그 뷰가 제공되며, 이를 조회하면 데이터베이스에 생성된 모든 사용자와 관련 상세 정보를 손쉽게 확인할 수 있습니다.

전체 사용자 조회 쿼리

SQL Server의 모든 사용자를 조회하려면 아래 쿼리를 실행하면 됩니다.

SELECT *
FROM master.sys.database_principals;

sys.database_principals 주요 컬럼 살펴보기

sys.database_principals 시스템 뷰는 다음과 같은 컬럼들로 구성되어 있습니다.

컬럼명설명
nameCREATE USER 명령으로 생성된 사용자 이름
principal_id보안 주체(Principal) ID (숫자 값)
type보안 주체 유형 코드
type_desc보안 주체 유형에 대한 설명
default_schema_name스키마가 별도로 지정되지 않았을 때 사용되는 기본 스키마 이름
create_dateCREATE USER 명령으로 사용자가 생성된 날짜/시간
modify_date사용자 정보가 마지막으로 수정된 날짜/시간
owning_principal_id해당 사용자를 소유한 보안 주체의 ID
sidCREATE LOGIN 명령에서 지정한 SID 값
is_fixed_role고정 역할 여부 (0 또는 1)
authentication_typeNONE, WINDOWS, INSTANCE 중 하나
default_language_name기본 언어 이름
default_language_lcid기본 언어 LCID

보안 주체(Principal) 유형 코드

type 컬럼에 표시되는 보안 주체 유형 코드는 다음과 같습니다.

  • S = SQL Server 사용자
  • U = Windows 사용자
  • G = Windows 그룹
  • A = 응용 프로그램 역할(Application Role)
  • R = 데이터베이스 역할(Database Role)
  • C = 인증서(Certificate)에 매핑된 사용자
  • K = 비대칭 키(Asymmetric Key)에 매핑된 사용자

type_desc 컬럼에 표시되는 유형 설명은 다음과 같습니다.

  • SQL_USER
  • WINDOWS_USER
  • WINDOWS_GROUP
  • APPLICATION_ROLE
  • DATABASE_ROLE
  • CERTIFICATE_MAPPED_USER
  • ASYMMETRIC_KEY_MAPPED_USER

구버전 SQL Server에서 사용자 조회하기

SQL Server 2000과 같은 구버전 환경에서는 sys.sysusers 시스템 테이블을 사용하여 모든 사용자를 조회할 수 있습니다. 실행 명령은 다음과 같습니다.

SELECT *
FROM master.sys.sysusers;

sys.sysusers 주요 컬럼 살펴보기

컬럼명설명
uid사용자 ID (고유 숫자 값)
status해당 없음
nameCREATE USER 명령으로 생성된 사용자 이름
sidCREATE LOGIN 명령에서 지정한 SID 값
roles생성되지 않음
createdateCREATE USER 명령으로 사용자가 생성된 날짜/시간
updatedate사용자 정보가 수정된 날짜/시간
altuid해당 없음
password해당 없음
gid사용자에게 할당된 그룹 ID
environ해당 없음
hasdbaccess데이터베이스 접근 권한 여부 (0 또는 1)
islogin로그인 계정 여부 (0 또는 1)
isntnameWindows 계정 이름 여부 (0 또는 1)
isntgroupWindows 그룹 여부 (0 또는 1)
isntuserWindows 사용자 여부 (0 또는 1)
issqluserSQL Server 사용자 여부 (0 또는 1)
isaliased별칭(Alias) 여부 (0 또는 1)
issqlroleSQL Server 역할 여부 (0 또는 1)
isapprole응용 프로그램 역할 여부 (0 또는 1)

함께 참고하면 좋은 글

  1. SQL Server에서 로그인(Login) 찾기
  2. SQL Server의 CREATE USER 명령 사용법