2012-12-24 102 views
1

我在C#2010的应用程序,在SQL Server 2008 R2 Express中的数据库,我没有连接到我的数据库MyDB我的工作电脑上的任何问题,我开发了应用程序。但是,当我试图在其他电脑上安装和配置我的服务器这样后:SQL Server 2008 R2的快递:用户登录失败

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 

我运行应用程序,在这里我的问题:当我尝试连接到MYDB,我得到这个消息:

用户'WIN-ELKPAS5MS2O \ User1'登录失败。原因:未能打开 明确指定的数据库。 [客户端:]

+0

是的,我创建了一个用户到这个登录,但错误依然发生,当我运行SQLCMD,我读:mydb数据库未找到。 –

回答

0

你已经创建了一个登录 - 这很好,但是这对服务器(实例)的水平。虽然登录权限赋予此帐户/用户权限以连接到服务器 - 但仅仅是第1步。

现在您正在恢复数据库 - 但您并未在该数据库内创建与您刚刚创建的登录对应的用户

所以RESTORE DATABASE后,您还需要:

USE MyDB 
GO 

CREATE USER User1 FOR LOGIN User1; 
GO 

现在你有你刚恢复的数据库中,用户对应于该登录 - 现在,希望你的应用程序将正常工作。

+0

我试图EXCUTE您COMMANDE,但我得到这个消息: 数据库“MYDB”未找到 –

+0

好了,你们为什么不启动一个问题:“我不知道如何命名数据库?”。如果MyDB不存在,是不是明显,你不能连接到它? – TomTom

+0

TomTom:当我执行恢复commande,我可以在SqlServer文件夹中找到数据库,但是当我执行此comande时:使用[MyDB],我得到:数据库未找到! –

相关问题