0

これは、認証モードとして「フォーム」を使用する asp.net アプリです。単一の SQL ユーザーが接続文字列で指定されます (「サーバー=SQLSERVER;データベース=DB;ユーザー ID=ユーザー;パスワード=pwd;永続セキュリティ情報=True」 ;") 明らかに FILESTREAM へのアクセスは拒否され、サービス IIS と SQL の両方が異なるマシンに存在します。私の開発環境ではすべてが機能しますが、ここでの接続文字列は、信頼できる接続を持つ現在の Windows ユーザーを中継します。

サービス アカウントを作成し、IIS でアプリケーション プールをその資格情報で実行するように構成しました。同じユーザーを SQL サーバーに追加し、必要なデータベースに権限を割り当てました。最初は「SSPI コンテキストを作成できません」というエラーが表示されました。次に、「Trusted Connection = True」(Server=SQLSERVER;Database=DB;Persist Security Info=True;Trusted_Connection=True;) を使用する FILESTREAM Management モジュールから使用されるサーバーへの接続を設定しました。アクセスも拒否されましたが、「ユーザー 'DOMAIN\SERVERNAME' のログインに失敗しました。」と表示されます。servername は、IIS をホストしているサーバーです。

どんな助けでも大歓迎です!!!

4

1 に答える 1

0

ASP.NET アプリが "統合セキュリティ" (信頼された接続) を介して SQL サーバーで承認を求める場合、アプリケーションが存在するコンピューターのマシン名を使用して承認を試みます (技術的には、アプリケーション プールの ID を使用して承認を試みます。 "applicationPoolIdentity" は組み込みのコンピューター アカウントです) これらのコンピューター アカウントの形式は、DOMAIN\COMPUTER$ です。

SSMS で許可されたユーザーにログイン名 DOMAIN\IISSERVERNAME$ ($ 記号が必要) を追加し、適切なデータベースに読み取り/書き込み権限を割り当てます。

于 2015-01-19T03:30:31.880 に答える