2

Visual Studio 2012 Express, EF5, 코드 첫 마이그레이션, 웹 게시를 사용하여 'master'데이터베이스에서 CREATE DATABASE 권한이 거부되었습니다.웹 배포, EF 코드, Visual Studio

나는 웹이 파일이 잘 업로드 2012 년

비주얼 스튜디오에서 웹 배포를 사용하여 Windows Server 2008 R2의 웹 서버에 윈도우 8 노트북에서 게시하고있는 중이 야. 하지만이 오류가 발생합니다 : 'master'데이터베이스에서 CREATE DATABASE 권한이 거부되었습니다.

코드가 처음으로 데이터베이스를 만들려고 할 때.

웹 게시 마법사는 Windows 사용자를 사용하여 로그인합니다.이 사용자는 master 데이터베이스에 대한 db_owner 권한을 가지고 있습니다.

CREATE DATABASE 권한을 부여하려면 정확히 무엇이 필요합니까? (또는 어떤 사용자가 오류를 시도했는지 확인하십시오. 오류로 인해 어떤 이유로보고되지 않습니까?).

감사합니다.

+0

이 블로그는 http://blogs.msdn.com/b/dparys/archive/2009/09/17/create-database-permission-denied-in-database-master-my- fix.aspx –

답변

9

방금이 문제를 발견했으며 지침 here을 따라 해결했습니다. 효과적으로 "IIS APPPool \ DefaultAppPool"사용자를 먼저 추가해야합니다. 추가하는 동안 "서버 역할"로 을 "sysadmin"으로 지정하십시오.

+1

테스트 서버에서는 문제가 없지만 프로덕션 환경에서는 웹 응용 프로그램이나 IIS 자체의 취약점이 db의 sysadmin 인 경우 훨씬 나빠질 수 있습니다. – Nathan

+0

db를 만든 후에 권한을 제거 할 수 있습니다. dbcreator 역할 만 사용하는 것으로 충분합니다. –

1

IIS에서 응용 프로그램을 실행중인 경우 IIS APPPOOL \ {사용자 apppool name}은 db를 만들려는 sql 사용자입니다. SQL Server에 그러한 사용자가없는 경우 이름이 IIS APPPOOL \ {Your apppool name} 인 계정을 만들고 서버 역할 dbcreator, public 및 sysadmin을 지정합니다. 이제 당신이 오류를 보지 못하길 바랍니다, 코드는 먼저 db를 만들어야합니다.