DBMS/SQL Server (MS-SQL)

[SQL Server / MS-SQL] 운영 체제 오류 5: "5(액세스가 거부되었습니다.)"

RYEAN 2020. 2. 14. 18:16
반응형

# 운영 체제 오류 5: "5(액세스가 거부되었습니다.)" (Microsoft SQL Server, 오류: 5120)

 


물리적 파일 "D:\MSSQL\DATA\test.mdf"을(를) 열 수 없습니다. 운영 체제 오류 5: "5(액세스가 거부되었습니다.)".

 

이 오류는 데이터베이스 파일을 다른 위치로 옮기기 위해

데이터베이스 분리 후 파일의 저장위치를 변경하고 연결(Attach) 시도 시 발생한 오류이다.

 

 

[SSMS]

[T-SQL]

 

이 오류는 데이터베이스 파일을 옮기려는 경로에 접근(액세스) 권한이 없어서 발생한다.

먼저, MSSQL 의 기본 저장 경로의 권한을 확인해보자.

 

나의 경로는 아래와 같다.

"C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA" 

 

[DATA] 폴더 우클릭 > [속성] 선택

 

[DATA속성] 폴더 > [보안] 탭 선택

그룹 또는 사용자이름을 보면 MSSQLSERVER 가 있는데,

이게 바로 나의 MSSQL 의 인스턴스명 (Instance Name) 이다.

그리고 인스턴스가 모든 권한을 허용하고 있다.

 

※ 인스턴스명 (Instance Name) 아는 방법

[윈도우+R] 실행 > "services.msc" 입력하여 서비스를 실행한다.

서비스 중 SQL Server 를 찾는다.

나 같은 경우엔 "SQL Server(MSSQLSERVER)" 라고 되어 있는데,

괄호 안의 내용이 바로 인스턴스 이름이다.

(만약 설치 시, 따로 설정없이 진행했다면 MSSQLSERVER 로 되어있을 것이다.)

 

이제 데이터베이스 파일을 새로 옮겨 줄 경로로 가서 권한을 확인해보자.

나는 아래와 같은 경로에 데이터베이스 파일을 옮겨 줄 예정이다.

"D:\MSSQL\DATA"

 

[DATA] 폴더 우클릭 > [속성] 선택

 

[DATA] 속성 > [보안] 탭 선택

해당 폴더에는 인스턴스(MSSQLSERVER) 가 존재하지 않으므로 새로 추가해주어야 한다.

 

선택할 개체 이름에

"NT Service\MSSQLSERVER" 를 입력해주고, [이름 확인] 버튼을 누른다.

 

그럼 MSSQLSERVER 라는 문구가 나오며 정상 확인이 된다.

 

확인하면 인스턴스가 생기고, 권한을 모두 허용하면 된다.

 

이렇게 하고 다시 진행하니,

정상적으로 데이터베이스 연결(attach) 되었다 :)

 

 

 

 

반응형