2011-10-10 1 views
13

SQL Server 2008에서 asp.net 4 C# 및 엔티티 프레임 워크 4를 사용합니다. IIS 7을 사용하여 로컬로 웹 응용 프로그램을 설정하려고합니다.EXECUTE 권한이 'aspnet_CheckSchemaVersion'데이터베이스에서 거부되었습니다. 데이터베이스 'XXX'

내 웹 사이트의 경우 사용자 DB 공급자 (aspnet_)에 다른 테이블과 sprocs를 설치했습니다.

The EXECUTE permission was denied on the object 'aspnet_CheckSchemaVersion', database 'XXX', schema 'dbo'.  at System.Data.SqlClient.SqlConnection.OnError 
  • 가 어떻게이 문제를 해결할 수 :

    우리가이 오류가 스크립트를 실행? 명확한 안내를 제공해주십시오. 이것에 당신의 hep를 가져 주셔서 감사합니다.

+4

당신은 귀중한가요? 당신이 멍청한 놈이라고 생각했는데 그건 코미디 오타입니다. –

+0

여기에 답변 : http://stackoverflow.com/questions/16134262/execute-permission-denied-aspnet-roles-roleexists?answertab=active#tab-top –

답변

23

멤버십 테이블과 관련된 db 역할이 있어야합니다 (예 : aspnet_profile_fullaccess). 사용중인 계정이 해당 역할의 구성원인지 확인하십시오.

db에 연결하는 사용자에게 dbowner 권한을 할당하지 마십시오. 계정에 필요한 권한 만 있어야합니다. & dbo & 누군가가 귀하의 웹 사이트의 결함을 악용했다면 원하는 전체 데이타베이스에 대한 완전한 제어되지 않은 액세스를 갖게됩니다. 즉, 테이블을 삭제하고 원하는대로 데이터를 변경하십시오.

+0

감사합니다 시몬 나는 당신의 대답을주의 깊게 읽었으며 당신에게 동의합니다. – GibboK

+2

연결하려는 모든 사용자에게 aspnet_ * 역할이 할당되어 있으며 여전히이 오류 메시지가 표시됩니다. dbowner 역할을 추가하면 작동하는 유일한 방법입니다. 네가 아는 건이 일을 일으킬거야? – ajbeaven

+1

ASP.NET SQL Server 등록 도구를 실행해야 할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms229862(v=vs.100).aspx – arni

1

문제는 응용 프로그램이 로그인하는 사용자 ID에 충분한 권한이 데이터베이스에 없다는 것입니다. 데이터베이스 소유자이거나 모든 aspnet_ 저장 프로 시저에 대한 사용 권한이 있어야합니다.

따라서이 특정 사용자의 SQL Server 2008에서 사용 권한을 확인하십시오. 가능한 경우이 사용자를 dbowner로 만듭니다. 이 도움이

희망 ...

편집 : 나는 dbowner는 당신이 문제에 대해, 당신이 그 권한을 할당 할 수 있는지 일단, 일부 권한 문제가 있는지 확인하기 위해 당신이 그것을 만들고 싶었다 사용자. 따라서 정확한 원인과 정확한 해결책을 알고 있어야합니다.

+1

사용자를 dbowner로 만들기 위해 제안을 위해 투표했습니다. 나는 당신이 당신의 편집에서 이것을 자격을 갖춘 것을 알고 있지만, 나는이 진술이 위험 할 수 있다는 것을 알기에 충분하다는 것을 압니다. – awrigley

0

나는 사용자를 db_owner로 만들어야한다고 생각하지 않습니다. 나는 동일한 문제가 있었고 BasicAccess로 4 가지 역할을 수행하여 내 사용자에게 + 모든 저장된 proc에 대한 EXECUTE 권한을 부여하는 것만으로도 충분했습니다.

[theUserName]에게 GRANT EXECUTE;

나는 이것이 이상적이지 않다는 것을 알고있다. 필요한 저장 프로 시저에 대해서만 EXECUTE 권한을 부여해야하지만, 사용자가 실행할 수 있어야하는 SP를 찾을 때까지 빠른 해결책이 필요한 경우이 방법이 효과적입니다.

관련 문제