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

SQL Server에서 모든 로그인 계정 조회하는 방법 (sys.sql_logins)

SQL Server에서 모든 로그인 계정 조회하기

SQL Server에 생성된 모든 로그인(login) 계정과 관련 정보를 한 번에 확인할 수 있는 쿼리가 있을까요? 답은 입니다. SQL Server에는 sys.sql_logins라는 가상 카탈로그 뷰(시스템 뷰)가 있으며, 이를 조회하면 서버에 생성된 모든 로그인과 세부 정보를 함께 반환받을 수 있습니다.

전체 로그인 목록 조회 쿼리

SQL Server의 모든 로그인 계정을 조회하려면 다음 쿼리를 실행합니다.

SELECT *
FROM master.sys.sql_logins;

sys.sql_logins 뷰의 주요 컬럼

sys.sql_logins 뷰는 아래와 같은 컬럼들로 구성되어 있습니다.

컬럼설명
nameCREATE LOGIN 명령에서 지정한 로그인 이름입니다.
principal_id보안 주체 ID(숫자 값)입니다.
sidCREATE LOGIN 명령에서 지정한 고유 보안 식별자(SID)입니다.
type보안 주체 유형 코드입니다. 아래 목록 참고.
type_desc보안 주체 유형에 대한 설명입니다. 아래 목록 참고.
is_disabled로그인 비활성화 여부(0 또는 1)입니다.
create_dateCREATE LOGIN 명령으로 로그인이 생성된 날짜/시간입니다.
modify_dateALTER LOGIN 명령으로 마지막에 수정된 날짜/시간입니다.
default_database_nameCREATE LOGIN 또는 ALTER LOGIN 명령에서 지정한 기본 데이터베이스 이름입니다.
default_language_name기본 언어 설정입니다.
credential_id자격 증명(credential) ID입니다.
is_policy_checked암호 정책 검사 여부(0 또는 1)입니다.
is_expiration_checked암호 만료 검사 여부(0 또는 1)입니다.
password_hash로그인 암호의 해시 값입니다.

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 2000)에서의 호환성

SQL Server 2000과 같은 구버전 환경에서는 시스템 테이블인 sys.syslogins를 사용해 모든 로그인 정보를 확인할 수 있습니다.

SELECT *
FROM master.sys.syslogins;

sys.syslogins 시스템 테이블(SQL Server 2000)은 다음과 같은 컬럼들을 포함합니다.

컬럼설명
sidCREATE LOGIN 명령에서 지정한 고유 값입니다.
status적용되지 않습니다.
createdateCREATE LOGIN 명령으로 로그인이 생성된 날짜/시간입니다.
updatedateALTER LOGIN 명령으로 마지막에 수정된 날짜/시간입니다.
accdate사용되지 않습니다.
totcpu적용되지 않습니다.
totio적용되지 않습니다.
spacelimit적용되지 않습니다.
timelimit적용되지 않습니다.
resultlimit적용되지 않습니다.
nameCREATE LOGIN 명령에서 지정한 로그인 이름입니다.
dbname기본 데이터베이스 이름입니다.
language기본 언어입니다.
denylogin로그인 거부 여부(0 또는 1)입니다.
hasaccess서버 접근 권한 여부(0 또는 1)입니다.
isntnameWindows 계정 여부(0 또는 1)입니다.
isntgroupWindows 그룹 여부(0 또는 1)입니다.
isntuserWindows 사용자 여부(0 또는 1)입니다.
sysadminsysadmin 고정 서버 역할 멤버 여부(0 또는 1)입니다.
securityadminsecurityadmin 역할 멤버 여부(0 또는 1)입니다.
serveradminserveradmin 역할 멤버 여부(0 또는 1)입니다.
setupadminsetupadmin 역할 멤버 여부(0 또는 1)입니다.
processadminprocessadmin 역할 멤버 여부(0 또는 1)입니다.
diskadmindiskadmin 역할 멤버 여부(0 또는 1)입니다.
dbcreatordbcreator 역할 멤버 여부(0 또는 1)입니다.
bulkadminbulkadmin 역할 멤버 여부(0 또는 1)입니다.
loginnameCREATE LOGIN 명령에서 지정한 로그인 이름입니다.