2012-12-24 2 views
1

C# 2010의 응용 프로그램, SQL Server 2008 R2 Express의 데이터베이스가 있습니다. 내 데이터베이스에 연결하는 데 아무런 문제가 없습니다. MyDB 내 작업 PC에서 응용 프로그램을 개발했습니다.SQL Server 2008 R2 Express : 사용자가 로그인하지 못했습니다.

USE [master] 
GO 

CREATE LOGIN [User1] WITH PASSWORD=N'Pass', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON 
GO 

EXEC master..sp_addsrvrolemember @loginame = N'User1', @rolename = N'sysadmin' 
GO 

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2 
GO 

RESTORE DATABASE [MyDB] FROM DISK = N'pathtoMyDB\MyDB.bak' WITH FILE = 1, 
NOUNLOAD, STATS = 10 
GO 

내가 내 문제가 여기에 응용 프로그램을 실행 : 내가 다른 PC에 설치하고, 이후이 같은 내 단절을 구성하려고 할 때 그러나 내가보기 MyDB에 연결하려고 할 때,이 메시지가 :

'WIN-ELKPAS5MS2O \ User1'사용자가 로그인하지 못했습니다. 이유 : 명시 적으로 지정된 데이터베이스 을 열지 못했습니다. [클라이언트 :]

+0

예이 로그인에 대한 사용자를 만들었지 만 오류가 여전히 발생합니다. SQLcmd를 실행할 때 읽었습니다. 데이터베이스 : MyDB를 찾을 수 없습니다. –

답변

0

당신은 로그인를 만들었습니다 - 그 괜찮아요,하지만이 서버 (예) 수준이다. 로그인은이 계정/사용자에게 서버에 연결할 수있는 권한을 부여합니다. 단 1 단계입니다.

이제 데이터베이스를 복원하는 중 - 방금 작성한 로그인에 해당하는 데이터베이스에 사용자 사용자를 만들지 않습니다.

는 그래서 RESTORE DATABASE 후, 당신은 또한 필요

USE MyDB 
GO 

CREATE USER User1 FOR LOGIN User1; 
GO 

지금 해당 로그인에 대응하여 새롭게 복원 된 데이터베이스 내부의 사용자가 - 지금, 희망, 응용 프로그램이 작동합니다.

+0

명령을 이행하려고 시도했지만이 메시지가 나타납니다. 데이터베이스 'MyDB'를 찾을 수 없습니다. –

+0

그렇다면 왜 "데이터베이스 이름을 모르는가?"라는 질문을 시작하지 마십시오. MyDB가 존재하지 않는다면, MyDB에 연결할 수 없다는 것이 명백하지 않습니까? – TomTom

+0

TomTom : 복원 명령을 내릴 때 SqlServer 폴더에서 데이터베이스를 찾을 수 있지만이 comande를 실행할 때 : [MyDB]를 사용하면 데이터베이스가 없습니다 !! –

관련 문제