SQL 쿼리의 성능 분석을 할 일이 있었다. 실제 서버엔 권한이 없으니 테스트 서버를 이용해야 하는데 안타깝게도 말 그대로 테스트용이라 데이터가 충분치 않았다. 결국 마이크로소프트가 제공하는 SQL Server 2005용 샘플 데이터베이스를 쓰기로 했다. 어차피 특정 쿼리의 성능 문제보단 그런 종류의 쿼리가 야기할지 모르는 문제를 파악할 생각이었으니 다른 데이터베이스를 써도 무방했다. 데이터만 충분하다면 말이다.
그래서 AdventureWorks(샘플 데이터베이스의 이름)을 다운로드 받아 설치했다. 예전 기억엔 msi 파일을 실행시키면 알아서 데이터베이스 생성까지 해 주었던 듯 한데, 이제 보니 “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data”에 “AdventureWorks_Log.ldf”(로그)와 “AdventureWorks_Data.mdf”(데이터) 파일만 복사하고 끝이다. 그러니 이 파일을 이용해 SQL 서버에 AdventureWorks 데이터베이스를 생성(Attach)하는 책임은 각자에게 주어진다.
자, 문제는 이제부터다. 데이터베이스를 생성했다고 치자. 이제 데이터베이스에 접근해 뭔가 해보려 한다. 그러면 오류 메시지가 뜬다.
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf’. (Microsoft SQL Server, Error: 5123)
이 문제는 파일의 권한 문제 때문에 벌어진다. 해결책은 아주 간단한데, “AdventureWorks_Log.ldf”와 “AdventureWorks_Data.mdf”의 등록 정보(등록 정보 – 보안)를 펼쳐서 SQLServer2005MSSQLUser 에게 모든 권한을 주면 된다.