이 문서에서는 SQL Server on Linux에 필요한 서비스 계정 및 파일 시스템 권한을 설명합니다. Windows 권한의 SQL Server에 대한 자세한 내용은 Windows 서비스 계정 및 권한 구성을 참조하세요.
기본 제공 Windows 보안 주체
SQL Server on Linux가 운영 체제 계정 mssql에서 실행되더라도 호환성을 위해 SQL Server 계층에서 다음과 같은 Windows 보안 주체가 존재합니다. 위험을 완전히 이해하지 않는 한 제거하거나 거부하지 마세요.
| 교장 | 기본 SQL Server 역할 | 세부 정보 |
|---|---|---|
BUILTIN\Administrators |
sysadmin | 호스트의 루트 수준 관리자에게 매핑됩니다. 특정 시스템 개체는 이 계정의 컨텍스트에서 실행됩니다. |
NT AUTHORITY\SYSTEM |
public | Windows SYSTEM 계정에 예약된 SID(서비스 식별자)입니다. 성공할 것으로 예상되는 플랫폼 간 스크립트가 계속 생성됩니다. |
NT AUTHORITY\NETWORK SERVICE |
sysadmin (고정 역할 없음) | 지금까지 Windows의 여러 SQL Server 서비스에 대한 기본 시작 계정입니다. 이전 버전과의 호환성을 위해서만 제공됩니다. SQL Server on Linux 데이터베이스 엔진 자체에서 사용되지 않습니다. |
파일 및 디렉터리 소유권
폴더 /var/opt/mssql 아래의 모든 파일은 mssql 사용자가 소유하고, mssql 그룹(mssql:mssql)이 소유해야 하며, 사용자와 그룹 모두에게 읽기 및 쓰기 액세스가 있어야 합니다. 기본 umask(0022)를 변경하거나 대체 탑재 지점을 사용하는 경우 이러한 권한을 수동으로 다시 적용해야 합니다.
폴더에 대한 mssql 기본 권한은 다음과 같습니다.
drwxr-xr-x 3 root root 4096 May 14 17:17 ./
drwxr-xr-x 13 root root 4096 Jan 7 2025 ../
drwxrwx--- 7 mssql mssql 4096 May 14 17:17 mssql/
폴더 내용 mssql 에 대한 기본 사용 권한은 다음과 같습니다.
drwxrwx--- 7 mssql mssql 4096 May 14 17:17 ./
drwxr-xr-x 3 root root 4096 May 14 17:17 ../
drwxr-xr-x 5 mssql mssql 4096 May 14 17:17 .system/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 data/
drwxr-xr-x 3 mssql mssql 4096 Sep 16 22:57 log/
-rw-r--r-- 1 root root 85 May 14 17:17 mssql.conf
drwxrwxr-x 2 mssql mssql 4096 May 14 17:17 secrets/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 security/
사용자 데이터 위치, 로그 파일 위치 또는 시스템 데이터베이스 및 로그 위치를 변경하는 방법에 대한 자세한 내용은 mssql-conf 도구를 사용하여 Linux에서 SQL Server 구성을 참조하세요.
일반적인 SQL Server 디렉터리
| 목적 | 기본 경로 | 세부 정보 |
|---|---|---|
| 시스템 및 사용자 데이터베이스 | /var/opt/mssql/data |
master, model, tempdb 및 새로운 데이터베이스는 mssql-conf에서 리디렉션하지 않는 경우 포함됩니다. 자세한 내용은 시스템 데이터베이스의 기본 위치 변경을 참조하세요. |
| 트랜잭션 로그(구분된 경우) |
/var/opt/mssql/data 또는 mssql-conf set filelocation.defaultlogdir를 통해 설정된 경로입니다. |
트랜잭션 로그를 이동하는 경우 동일한 소유권을 유지합니다. 자세한 내용은 기본 데이터 또는 로그 디렉터리 위치 변경을 참조하세요. |
| 백업 | /var/opt/mssql/data |
첫 번째 백업 전이나 볼륨 또는 디렉터리를 매핑할 때 chown을 만들어 설정합니다. 자세한 내용은 기본 백업 디렉터리 위치 변경을 참조하세요. |
| 오류 로그 및 XE(확장 이벤트) 로그 | /var/opt/mssql/log |
또한 기본 시스템 상태 XE 세션을 호스트합니다. 자세한 내용은 기본 오류 로그 파일 디렉터리 위치 변경을 참조하세요. |
| 메모리 덤프 | /var/opt/mssql/log |
코어 덤프 및 DBCC CHECK* 덤프에 사용됩니다. 자세한 내용은 기본 덤프 디렉터리 위치 변경을 참조하세요. |
| 보안 비밀 | /var/opt/mssql/secrets |
TLS 인증서, 열 마스터 키 등을 저장합니다. |
각 에이전트에 대한 최소 SQL Server 역할
| 에이전트 | Linux에서 실행 | 다음에 연결 | 필수 데이터베이스 역할/권한 |
|---|---|---|---|
| 스냅샷 에이전트 |
mssql (SQL 에이전트 작업을 통해) |
Distributor | 배포 데이터베이스의 db_owner; 스냅샷 폴더의 읽기/쓰기 |
| 로그 판독기 에이전트 | mssql |
게시자 및 배포자 | 배포 시스템 및 게시 데이터베이스 내 db_owner. 백업에서 초기화를 사용할 때 sysadmin 이 필요할 수 있습니다. |
| 배포 에이전트(푸시 방식) | mssql |
배포자에서 구독자로 | 배포의 db_owner ; 구독 데이터베이스의 db_owner. 스냅샷 폴더를 읽습니다. PAL 멤버입니다. |
| 배포 에이전트(풀) |
mssql (구독자) |
구독자에서 배포자로 배포자에서 구독자로 |
배포 에이전트(푸시)와 동일하지만 스냅샷 공유 권한은 구독자 호스트에 적용됩니다. |
| 병합 에이전트 | mssql |
게시자, 배포자, 구독자 | 배포에서 db_owner. PAL 멤버입니다. 스냅샷 폴더를 읽습니다. 게시 및 구독 데이터베이스에서 읽기/쓰기 |
| 대기열 읽기 에이전트 | mssql |
Distributor | 배포 환경의 db_owner. 게시 데이터베이스에서 db_owner 사용하여 Publisher에 연결합니다. |
모범 사례
mssql SQL Server에서 사용하는 사용자 및 그룹은 기본적으로 로그인이 아닌 계정이며 이러한 방식으로 유지되어야 합니다. 보안을 위해 가능한 경우 SQL Server on Linux에 Windows 인증을 사용합니다. SQL Server on Linux에 대한 Windows 인증을 구성하는 방법에 대한 자세한 내용은 자습서: adutil을 사용하여 SQL Server on Linux에서 Active Directory 인증을 구성합니다.
디렉터리에 그룹 액세스가 필요하지 않을 때마다 파일 권한을 추가로 제한합니다(명령 chmod 700사용).
호스트 디렉터리 또는 NFS 공유를 컨테이너 또는 가상 머신에 바인딩할 때는 먼저 해당 디렉터리나 공유를 생성한 후에 UID 10001를 매핑합니다 (기본값은 mssql).
애플리케이션 로그인에 sysadmin 을 부여하지 않습니다. 대신 세분화된 역할과 EXECUTE AS 래퍼를 사용합니다. 다른 sysadmin 계정을 만든 후에는 sa 계정을 사용하지 않도록 설정하거나 이름을 바꾸십시오. 자세한 내용은 SA 계정 사용 안 함을 모범 사례로 참조하세요.