1

MyDBSQL Server 2008 R2 Express のデータベースである C#2010 にアプリケーションがあります。アプリケーションを開発した職場の PC でデータベースに接続するのに問題はありません。しかし、他の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」のログインに失敗しました。理由: 明示的に指定されたデータベースを開くことができませんでした。[クライアント: ]

4

1 に答える 1

0

ログインを作成しました- これで問題ありませんが、これはサーバー(インスタンス) レベルです。ログインにより、このアカウント/ユーザーにサーバーに接続する権限が与えられますが、これは手順 1 にすぎません。

ここで、データベースを復元していますが、作成したばかりのログインに対応するデータベース内にユーザーを作成していません。

したがって、の後にRESTORE DATABASE、次も必要です。

USE MyDB
GO

CREATE USER User1 FOR LOGIN User1;
GO 

これで、新しく復元されたデータベース内に、そのログインに対応するユーザーが作成されました。これで、アプリケーションが動作することを願っています。

于 2012-12-24T10:48:33.660 に答える