[英]SQL Server 2008 R2 Express : Login failed for user
我在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-ELKPAS5MS2O \\ User1'登錄失敗。 原因:無法打開顯式指定的數據庫。 [客戶:]
您已經創建了登錄名 -很好,但是在服務器 (實例)級別上。 登錄名授予該帳戶/用戶連接服務器的權限-不過這只是第一步。
現在,您正在還原數據庫-但您沒有在該數據庫中創建與您剛創建的登錄名相對應的用戶 。
因此,在RESTORE DATABASE
,您還需要:
USE MyDB
GO
CREATE USER User1 FOR LOGIN User1;
GO
現在,您在與該登錄名相對應的新還原的數據庫中有一個用戶-現在,希望您的應用程序可以運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.