2012-11-27 5 views
1

기존 ASP 응용 프로그램을 로컬 SQL Server 2008 데이터베이스에 연결하려고합니다. 앱과 데이터베이스는 다른 사람이 제작했습니다. 난 그냥 그들을 설치하고 내 컴퓨터 (윈도우 7)에서 실행 얻으려고.ASP가 SQL Server 데이터베이스에 연결할 수 없습니다.

Could not connect to database: 
Error Number: -2147467259 
Error Message: [ConnectionOpen (Connect()).] does not exist or access denied. 

내가 Windows 이벤트 뷰어에서 모든 메시지를 볼 수 없습니다 다음 ASP 응용 프로그램이 데이터베이스에 연결을 시도 할 때 때

나는 다음과 같은 오류를 받고 있어요. 내가보고있는 : 이벤트 뷰어 -> Windows 로그 -> 응용 프로그램.

간단한 복원을 사용하는 새로운 데이터베이스 설치입니다. SQL Server 설치는 기본 인스턴스를 사용합니다. SQL Server 및 Windows 인증이 모두 허용됩니다. 나는 기존의 연결 문자열 (ASP 코드에서)을 그대로두고 그냥 내 SQL Server 설치에 추가하려고했습니다. 다음은 연결 문자열입니다.

strConn = "PROVIDER=SQLOLEDB;SERVER=localhost;UID=TheUser;PWD=ThePassword;DATABASE=TheDatabase;" 

해당 사용자를 SQL Server에 추가하려면 SSMS의 보안/로그인으로 이동하여 사용자와 암호를 추가했습니다. 문제의 데이터베이스를 기본 데이터베이스로 선택했습니다. 트릭을 할 수도 있다고 생각했지만 그렇지 않았습니다. 그런 다음 TheDatabase에 들어가서 보안에 들어갔습니다. 이미 서버 보안에 추가 한 새 사용자를 참조하여 새 사용자를 추가했습니다. 소유 스키마 아래에서 db_owner를 클릭하고 역할 구성원에서 db_accessadmin 및 db_owner를 선택했습니다. 이 중 어느 것도 ASP 응용 프로그램에 데이터베이스에 대한 액세스 권한을 부여하지 않았습니다. 해당 로그인에 대한 sid 값은 sys.database_principalssys.server_principals과 일치합니다. 이 로그인을 사용하여 SSMS에 로그인 할 수 있습니다.

응용 프로그램은이 같은 데이터베이스에 대해 선택을 실행해야 :

oConn.Execute('select * from someTable') 

내가 DBA 아니에요 및 종류 여기에 빨대에서 파악하고있다. 이걸 어떻게 연결시켜야합니까?

덕분에, 제이

답변

0

IIS에서 해당 SQL Server 또는 웹 사이트가 잘못된 권한이있는 사용자로 실행 될 수 나에게 발생했습니다. 필자가 읽은 바를 토대로, SQL Server가 로컬 시스템으로 실행되는 것이 좋으므로이를 혼자 남겨 두었습니다.

IIS에서 내 웹 사이트는 "응용 프로그램 사용자 (통과 인증)"를 사용하고있었습니다. 이것은 Basic Settings-> Connect As ("Edit Site"대화 상자)에서 설정됩니다. 인증 설정 옆에있는 "테스트 설정 ..."을 클릭하면 "경로 (c:\mywebsitepath)에 대한 액세스를 확인할 수 없습니다."라고 표시됩니다. 나는 그 디렉토리에 대한 액세스 권한을 증가 시켰지 만 그것은 도움이되지 못했습니다. "연결 사용자"대화 상자에서 "응용 프로그램 사용자 (통과 인증)"대신 "특정 사용자"를 사용하도록 "경로 자격 증명"을 변경했습니다. 내 컴퓨터에 로그인 한 사용자를 사용하도록 설정했습니다. 그 후 "테스트 설정 ..."버튼을 클릭하고 "인증"옆에 "경로에 액세스 할 수 있음 (c:\mywebsitepath)"이라고 표시됩니다. 그 후에 ASP 웹 사이트는 SQL Server에 잘 연결할 수 있습니다.

연결 문자열에 특정 SQL Server 사용자 이름과 암호가 사용 되었기 때문에이 문제가 왜 해결되었는지 정확히 알 수는 없지만 문제가 해결 된 것으로 보입니다.

관련 문제