2

IIS 호스팅 WCF 서비스를 만들기 위해 VS2010 Beta 2를 사용하고 있습니다. 간단한 데이터 저장소로 사용할 SQL Server 데이터베이스 파일을 추가 한 다음 SQL 클래스와의 상호 작용을 위해 Linq를 생성했습니다.네트워크 서비스 계정을 사용하여 SQL Server Express db 파일에 연결하는 중 문제가 발생했습니다.

Linq to SQL이 데이터베이스에 연결을 시도 할 때 발생하는 문제가 있습니다. 아래 오류가 발생합니다 :

'master'데이터베이스에서 CREATE DATABASE 권한이 거부되었습니다. c : \ Source \ SampleApp \ App_Data \ GameData.mdf 파일에 대해 자동 이름이 지정된 데이터베이스를 첨부하지 못했습니다. 같은 이름의 데이터베이스가 있거나 지정된 파일을 열 수 없거나 UNC 공유에 있습니다.

내가 이미 사용자 인스턴스를 사용하지 않도록 Web.config를 변경 한 이전 문제를 해결 효율적으로 활용하려면 다음

<add name="GameDataConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\GameData.mdf;Integrated Security=True;User Instance=False" 
    providerName="System.Data.SqlClient" /> 

내 첫 반응은 응용 프로그램 풀의 사용자 계정 (네트워크 서비스)를 열 수 없습니다 것입니다 파일 그래서 나는 데이터베이스 파일과 로그 파일에 대한 모든 권한을 부여했지만이 도움이되지 않았다.

흥미롭게도 로컬 시스템에서 실행되도록 응용 프로그램 풀을 변경하면 모든 것이 올바르게 작동합니다. 네트워크 서비스 액세스 권한을 부여해야하는 다른 것이 있습니까?

답변

2

Yopu는 Sql Management Studio Express를 사용하고 네트워크 서비스 계정을 로그인으로 추가해야합니다. 그런 다음 지정된 데이터베이스에 대해 DBO 권한을 할당하거나 단순히 sysadmin 역할을 지정하십시오. 참고 SQL Server 2005의 모든 버전을 설치하는 경우 서비스의 로그인 계정을 설정하는 초기 옵션이 있습니다. 네트워크 서비스를 지정하는 경우. 기본적으로 네트워크 서비스 계정에는 sysadmin 역할이 부여됩니다. 당신이 <identity impersonate="true"/>을 사용하지 않는 경우

희망이

+0

SQL Management Studio를 사용하는 게임이 끝나면 끝났지 만 네트워크에서 서버에 로그온하고 해당 데이터베이스/파일에 대한 사용 권한을 부여하는 것은 매우 간단합니다. 치료에 도움을 주신 귀하의 도움에 감사드립니다. – Max

1

하는 데 도움이, 당신의 응용 프로그램 풀 사용자가 데이터베이스에 충분한 액세스 할 수 없습니다.

데이터베이스 사용자 (SQL 인증)를 만들고 연결 문자열에 자격 증명 (사용자 이름/암호)을 수정할 수도 있습니다. 그게 내가 보통하는 일이야.

+0

이것이 아마도 작동 할 것이라고 생각하지만 가장으로 실행하는 대신 네트워크 서비스를 사용하고 싶습니다. 감사 – Max

관련 문제