2

そうそう、有名なエラー:

ログインで要求されたデータベース「MYDBNAME」を開くことができません。ログインに失敗しました。ユーザー'USERNAME'のログインに失敗しました。

私の状況を説明させてください:

SAアカウントとユーザーアカウントを持つデータベースサーバーがあります。ユーザーは私のデータベース(dbowner)への正しいマッピングを持っています。

SQL Management Studio 2008 R2を使用して、SQLサーバー自体(localhostを使用)とフロントエンドサーバーの両方で、このユーザーでデータベースを開くことができます。

ただし、アプリケーションを実行すると、ログイン失敗エラーが発生します。

奇妙なことに、フロントエンドサーバーにテストアプリケーションと本番アプリケーションがあります。テストアプリケーションには同じデータベースサーバー上にテストデータベースがあり、ここではログインの問題はありません。2つの違いは、「TEST」から「PROD」とは異なるプレフィックスだけです。テストアプリケーションは機能しますが、本番環境は機能しません。ユーザーマッピングとそれは両方で動作するはずです。

何か案は?

編集:

私たちの接続文字列:

<add key="umbracoDbDSN" value="Server=Websqlsrv01;Database=PROD_Databasename;User ID=umbraco_user;Password=password;Trusted_Connection=False" />
4

3 に答える 3

1

SQLサーバーには二分法のログイン/ユーザーがあります

それらは2つの異なるエンティティです:

http://www.akadia.com/services/sqlsrv_logins_and_users.html

SQLログインがデータベースPROD_Databasenameのユーザーに関連付けられておらず、TEST_Databasenameにのみ関連付けられている可能性があります

別の原因は、ユーザーのデフォルトデータベースまたは最終的には異なるデータベーススキーマである可能性があります

PROD_Databasenameの新しいユーザーを作成し、それをconnectionstringで使用するだけで、これらの1つが問題であるかどうかを簡単に確認できます。

別の方法は実行することです

exec sp_helpuser

両方のデータベース(PRODとTEST)で、ユーザー名「umbraco_user」がリストされているかどうかを確認します。

とにかく、2人の異なるユーザーに同じログインを使用することは良い習慣ではありません:

https://dba.stackexchange.com/questions/16374/is-there-any-benefit-to-having-one-sql-server-login-for-multiple-users

于 2012-10-23T13:54:51.430 に答える
1

デフォルトのインスタンスservername\instancename以外のものをセットアップした場合は、接続文字列で使用する必要がある場合があります。このリンクを使用して、インスタンス名を見つけます。それを試してみてください!

于 2012-10-23T15:25:31.093 に答える
0

アプリケーションを右クリックして、管理者として実行します。これはうまくいくはずです!

于 2012-10-23T15:21:02.887 に答える