簡體   English   中英

SQL Server 2008 R2 Express:用戶登錄失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM