SQL Server 2008 R2 Express:用户登录失败

本文关键字:用户 登录 失败 Express Server 2008 R2 SQL | 更新日期: 2023-09-27 17:49:36

我在c# 2010中有一个应用程序,SQL Server 2008 R2 Express中的数据库,我在开发应用程序的工作PC上连接到我的数据库MyDB没有任何问题。但是当我试图在另一台PC上安装它时,在像这样配置我的服务器之后:

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 - elkpas5ms20 'User1"登录失败。原因:打开失败显式指定的数据库。(客户:)

SQL Server 2008 R2 Express:用户登录失败

您已经创建了一个登录—这很好,但这是在服务器(实例)级别上。登录给了这个帐户/用户连接到服务器的权限——不过这只是第一步。

现在您正在恢复数据库-但是您没有在数据库中创建一个与您刚刚创建的登录相对应的用户

RESTORE DATABASE之后,你还需要:

USE MyDB
GO
CREATE USER User1 FOR LOGIN User1;
GO 

现在您在刚刚恢复的数据库中有了一个与该登录名对应的用户-现在,希望您的应用程序可以工作了。