AppPoolIntegrated Pipeline ModeでIIS 7 Webサイトを実行しています。 AppPoolsはNetworkServiceなどの下で実行されません。ID(目的)は、独自のAppPool Identitiy(IIS AppPool\MyAppPool)を使用します。
これは、いわゆるサービスアカウントまたは仮想アカウントです。 (完全なアカウントではないユーザーアカウント...)
このサービスアカウント(IIS AppPool\MyAppPool)に、SQL Server 2008 Express(混合認証モードで実行)に接続する権限を与えたいと思います。
SQL Serverは通常のユーザーアカウントを追加できますが、IIS AppPool\MyAppPool仮想アカウントは有効なログオンに追加できません(SQL Serverはアカウントが見つからないと言います)。
仮想アカウントを機能させるために有効にする必要があるトリックはありますか? (w3wp.exeプロセスはtaskmgrに従ってこのIDで実行されますが、NTFSセキュリティでアカウントを使用することもできません...)
ご協力いただきありがとうございます!
「IIS APPPOOL\AppPoolName」は機能しますが、前述のように、有効なAD名ではないようですので、「ユーザーまたはグループの選択」ダイアログボックスで検索すると、実際には表示されません、それはそれを見つけますが、それは実際のシステムアカウントと考え、それをそのように扱うことを試みます...それは動作しません、そしてあなたにそれが見つからないというエラーメッセージを与えます)。
私がそれを機能させる方法は次のとおりです。
AppPool名が実際に存在する限り、ログインを作成する必要があります。
CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];
ちなみに、この投稿が示唆するように、仮想アカウント(NT Service\MyServiceおよびIIS AppPool\MyAppPool)を使用するプロセスは、「NETWORK SERVICE」アカウントでまだ実行されています http:// www。 adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx 。唯一の違いは、これらのプロセスは「NT Service\MyService」または「IIS AppPool\MyAppPool」グループのメンバーであるということです(これらは実際にはグループであり、 notユーザー)。これは、NETWORK SERVICEアカウントと同じように、プロセスがネットワークでマシンとして認証される理由でもあります。
アクセスをセキュリティで保護する方法は、NETWORK SERVICE特権を持たないこのアカウントに依存するのではなく、「NT Service\MyService」または「IIS AppPool\MyAppPool」に特に許可を与え、必要に応じて「Users」の許可を削除することです。
誰かがより正確または矛盾した情報を持っている場合は投稿してください。
マシン間を移動する場合は、NETWORK SERVICE、LOCAL SYSTEM、ドメインアカウント、またはSQL 2008 R2(所有している場合)管理サービスアカウント(このようなインフラストラクチャがあれば私の好みです)を使用する必要があります。 Active Directoryドメインに表示されていないアカウントは使用できません。
見てください: http://www.iis.net/learn/manage/configuring-security/application-pool-identities
USE master
GO
sp_grantlogin 'IIS APPPOOL\<AppPoolName>'
USE <yourdb>
GO
sp_grantdbaccess 'IIS APPPOOL\<AppPoolName>', '<AppPoolName>'
sp_addrolemember 'aspnet_Membership_FullAccess', '<AppPoolName>'
sp_addrolemember 'aspnet_Roles_FullAccess', '<AppPoolName>'
これはあなたが探しているものかもしれません...
http://technet.Microsoft.com/en-us/library/cc730708%28WS.10%29.aspx
また、長期的な権限を持つドメインユーザーを検討することをお勧めします。サイロマシンシナリオではうまくいきますが、DBサーバーの別のマシンに移動する場合は変更する必要があります。
私は試行錯誤を通してそれを理解しました...鎧の本当の隙間は、ウェブサイトのConfiguration Editor
のIISで少し知られている設定でした
Section: system.webServer/security/authentication/windowsAuthentication
From: ApplicationHost.config <locationpath='ServerName/SiteName' />
useAppPoolCredentials
と呼ばれます(デフォルトではFalse
に設定されています。これをTrue
に設定すると、人生が再び素晴らしいものになります!!!これにより、次の人の痛みが軽減されることを願っています...
私の場合、問題は、Visual Studio/Episerver拡張機能を使用してMVC Alloyサンプルプロジェクトをゼロから作成し始め、ローカルのVisual Studio iis expressを使用して実行すると正常に動作することでした。ただし、デフォルトではsqlデータベースをLocalDBにポイントし、サイトをローカルIISにデプロイすると、次の方法で解決した初期エラーの一部にエラーが表示され始めました。1.ローカルサイトのURLバインディングをC:/に追加Windows/System32/drivers/etc/hosts 2.その後、application.configを編集して、Visual Studioを使用してサイトを実行し、バインドを追加して、画面の右下隅にあるIIS expressを右クリックしてファイルの場所を見つけましたローカルIISのURLがあります。 3.最後に、SQL Expressで空の新しいDBを作成し、Web configで接続文字列を変更して新しいDBをポイントし、次にパッケージマネージャーコンソール(Visual Studioを使用)で実行する「データベースエラーにアクセスできません」 Episerver DBコマンド-1. initialize-epidatabase 2. update-epidatabase 3. Convert-EPiDatabaseToUtc