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"登录失败。原因:打开失败显式指定的数据库。(客户:)
您已经创建了一个登录—这很好,但这是在服务器(实例)级别上。登录给了这个帐户/用户连接到服务器的权限——不过这只是第一步。
现在您正在恢复数据库-但是您没有在数据库中创建一个与您刚刚创建的登录相对应的用户。
在RESTORE DATABASE
之后,你还需要:
USE MyDB
GO
CREATE USER User1 FOR LOGIN User1;
GO
现在您在刚刚恢复的数据库中有了一个与该登录名对应的用户-现在,希望您的应用程序可以工作了。