2

データベースを備えたSitefinityASP.NETWebサイトがありますDb1。データベースをSQLServerManagementStudioに接続しています。

ASP.NETアプリケーションを実行すると、データベースにアクセスするためのアクセス許可がないようです。Sitefinityは既存のデータベースへの接続に失敗し、新しいデータベースを作成しようとします。これにより、次のエラーがスローされます。

データベース'master'でCREATEDATABASE権限が拒否されました

接続文字列は次のとおりです。

<add connectionString="data source=localhost\sqlexpress;Integrated Security=SSPI;initial catalog=Db1" providerName="System.Data.SqlClient" dbType="MsSql" name="Sitefinity" />

SQL Management Studioで、Windows認証を使用してlocalhost\SQLEXPRESSインスタンスに接続します。

問題は、ASP.NETプロセスユーザーにデータベースへのアクセス許可を与える必要があることだと思いますDb1。このユーザーはどこにあり、どのように許可を与えることができますか?

また、アプリがWindows認証の代わりに適切なSQLServerユーザーを使用して接続する必要があるかどうかもわかりません。

4

3 に答える 3

2

IISで、Webサイトのアプリプールを見つけ、データベースへの接続に使用するWindowsアカウントに資格情報を設定します。

于 2012-09-26T16:24:02.750 に答える
1

ypuは接続文字列でADユーザーを使用しています。IntegratedSecurity=SSPI項目を参照してください。trueの場合、現在のWindowsアカウントの資格情報が認証に使用されることを意味します。

ユーザーがそのインスタンスにデータベースを作成する権限を持っていることを確認しますか?

于 2012-09-26T15:25:04.320 に答える
1

最も直接的で、移植性があり、展開可能なソリューションは、SQLServer認証に切り替えることです。

SSMSで、サーバーの[セキュリティ]タブを展開し、適切な名前とパスワードを持つユーザーを追加します。「次回のログオン時にパスワードを変更する必要がある」チェックボックスを必ずオフにしてください。

次に、データベースの[セキュリティ]タブを展開し、ユーザーを追加して、必要なロールに追加します。デバッグの場合は、db所有者の役割に追加するだけです。

これは、関連するすべての設定がアプリ構成とデータベース自体に保存されるため、デプロイを簡単にすることができ、パスワードの有効期限が切れたときにアプリケーションのユーザーアカウントを更新し続けることなどを心配する必要がないため便利です。

于 2012-09-26T16:29:14.457 に答える