개요
어제 3 - Task 8까지 진행
3 - Task 9의 검증 진행은 install 계정(MASTER 계정)으로 사용
SQL Server on Linux

ㅇㅇ

ㅇㅇ

ㅇㅇ

ㅇㅇ

ㅇㅇ
sudo su
cd /etc/skel
vi .vimrc
vi .bashrc # PS1="\h[\u \w]$ "
cd /root
cp /etc/skel/.vimrc /root
vi .bashrc # PS1="\h[\u \w]$ " (다음라인) alias vi='vim'
ㅇㅇ

필수는 아니고 글자 크기나 이런 걸 정하는 파일
# advanced package tools 및 기본 패키지 설치
sudo apt update -y
sudo apt install curl apt-transport-https software-properties-common -y
# MS SQL Server를 설치하기 위해 MS Ubuntu 서버 repository 경로 등록
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
# 저장소 갱신
sudo apt-get update
# MS SQL Server 설치
sudo apt-get install -y mssql-server
# MS SQL Server 실행
sudo /opt/mssql/bin/mssql-conf setup
ㅇㅇ

비번 SQLserver123

ㅇㅇ
# 패키지 설치
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo apt-get install mssql-tools18 unixodbc-dev
# 환경 변수 추가
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# SQLCMD로 SQL Server에 접속
sqlcmd -S localhost -U SA -P '비밀번호' -C
ㅇㅇ

ㅇㅇ

SQL Server on Linux는 보통 /var/opt/mssql/data 경로의 하위에 mdf 파일 및 ldf 파일을 보관한다.
MDF(Primary Data File) 파일은 데이터베이스의 핵심 데이터를 저장한다.
(테이블, 뷰, 저장 프로시저 등) 하나의 데이터베이스당 기본적으로 1개의 MDF 파일이 반드시 존재해야 한다.
LDF(Transaction Log File) 파일은 트랜잭션 로그를 저장한다.
데이터 변경 내역, 트랜잭션 복구/롤백에 사용한다. SQL Server는 LDF 파일을 사용해서 복원, 롤백, 복구 등의 작업을 수행한다.

ㅇㅇ

ㅇㅇ

chown mssql:mssql FabrikamFiber*으로 소유권자를 변경해야 한다.
cd /var/opt/mssql
mkdir backup
cd backup
wget https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2014.bak
chown mssql:mssql AdventureWorks2014.bak
cd ..
chown mssql:mssql backup
ㅇㅇ

ㅇㅇ

혹시라도 접속이 안 되면 포트 확인하기

ㅇㅇ

ㅇㅇ

또는 SQL 명령으로 백업
USE master;
GO
RESTORE DATABASE AdventureWorks
FROM DISK = '/var/opt/mssql/backup/AdventureWorks2014.bak'
WITH
MOVE 'AdventureWorks2014_Data' TO '/var/opt/mssql/data/AdventureWorks2014_Data.mdf',
MOVE 'AdventureWorks2014_Log' TO '/var/opt/mssql/data/AdventureWorks2014_Log.ldf';
GO
ㅇㅇ

ㅇㅇ

/var/opt/mssql 경로에 Samples 폴더를 mkdir로 만들고 vi로 예제 txt 파일을 하나 만든다.
이렇게 적은 내용은 cat 명령으로 확인할 수 있다.
Linux와 Windows는 newline을 다르게 관리한다.
Preview 단계에서는 SQL Server on Linux는 오직 Windows 포맷으로만 newline을 인식할 수 있다.
만약 Windows 에서 작성한 txt 파일을 복사하여 넣은 것이 아니라, txt를 직접 리눅스에서 만들어 줬다면 변환 작업이 필요하다.
apt-get install dos2unix
unix2dos -n samples.txt WinSampleLocations.txt
이를 통해 변경을 수행한다.

SSMS에서 로드 가능
CREATE TABLE Locations (LocationID INT, Location varchar(255));
BULK INSERT Locations
FROM '/var/opt/mssql/Samples/WinSampleLocations.txt'
WITH (FIELDTERMINATOR = ',');
SELECT * FROM Locations;
ㅇㅇ
보안 설정

ㅇㅇ
CREATE LOGIN DIO WITH PASSWORD = 'WRYYYYYYYYYY8%'
사용한 쿼리.

지금 접속한 건 SA 관리자 계정이라 Full Control이기에 할 수 있는 작업이다.
USE AdventureWorks;
GO
CREATE USER DIO;
GO
사용한 쿼리. 각 사용자에 대한 역할 부여와 권한 관리도 가능하다.
그밖에도 SQL Server 감사 기능(DB 엔진에 발생한 이벤트에 대한 추적과 기록을 남길 수 있게 해주는 기능)을 설정할 수 있다.

Dynamic Data Masking(동적 데이터 마스킹) 기능도 있다.
이를 행 수준 보안 기법과 연동할 수 있다.
'공부 > Microsoft Data School 1기' 카테고리의 다른 글
| AzureSQLServer 운영 및 관리 6 (1) | 2025.08.11 |
|---|---|
| AzureSQLServer 운영 및 관리 5 (4) | 2025.08.08 |
| AzureSQLServer 운영 및 관리 3 (4) | 2025.08.06 |
| AzureSQLServer 운영 및 관리 2 (0) | 2025.08.05 |
| AzureSQLServer 운영 및 관리 1 (2) | 2025.08.04 |