3

接続文字列:

Server=(local);Database=DigitSite.mdf;Integrated Security=true 

他の接続文字列をたくさん試しましたが、同じエラーが発生するか、提供したデータベースにログオンしようとさえしませんでした。これが現時点でのIISの問題なのか、SQLの問題なのか、接続文字列の問題なのかはわかりません。

IIS7では、このアプリプールはローカルシステムに設定されています

仮想ディレクトリが正しくマップされています

パスクレデンシャルには、「アプリケーションユーザー(パススルー認証)」を使用しましたが、ユーザーを指定しましたが、どちらも機能しませんでした。認証では、匿名認証をオフにし、偽装をオンにしました。

SQLでは、ログインしようとしているユーザーが、このデータベースに対して「dbowner」として適切なセキュリティを備えていることを確認しました。SQLに(sql Server 2008R2)としてサインインするユーザーを作成しようとしましたが、そのユーザーにログインしようとするとエラーが発生します。何か提案はありますか?

これはよくある問題のようですが、私は文字通り5時間以上かけてこれを調査し、設定をいじくり回してきたので、これを機能させる方法については少し気が遠くなりました。ありがとう。

4

2 に答える 2

3

SQL Serverは通常、論理データベース名を使用します。たとえば、サーバーインスタンスにデータベースを作成し(または.mdfSQL Server Management Studioで既存のファイルを添付して論理データベース名を付けます)、ファイル名などを実際に処理する必要はありません。 。

したがって、接続文字列は実際には次のようになります。

Server=(local);Database=DigitSite;Integrated Security=true 

実際のファイル名ではなく、論理データベース名のみを使用しDigitSiteます(SQL Serverがファイルを管理します-それを台無しにしないでください!)

于 2012-10-19T05:06:03.137 に答える
1

SQL Serverには、ログインにアクセス許可が割り当てられる場所が2つあります。1つはサーバーレベルで、もう1つはデータベースレベルです。両方の場所で適切な権限が必要です。

このエラーの場合、サーバーでのログインは正常であるように見えますが、データベースはログインを好みません。'Lenaire-PC \ Lenaire'のWindowsログインを使用しているため、ユーザーが'db_owner'ロールのメンバーであることを確認してください。

USE [DigiSite]
GO
EXEC sp_addrolemember N'db_owner', N'Lenaire-PC\Lenaire'

これが機能しない場合は、セットアップ、SQLのバージョンなどに関する詳細情報を提供する必要があります。これは珍しいようです。

また、プロジェクトをビルドするたびに、ビルドプロセスまたはVisualStudioの魔法がデータベースの変更を上書きしないようにしてください。これを修正するには、データベースをサーバーに永続的に接続します。

于 2012-10-19T00:01:31.757 に答える