IIS 7 AppPool ID를 SQL Server 로그온으로 추가
AppPool 통합 파이프 라인 모드 로 IIS 7 웹 사이트를 실행하고 있습니다. AppPools는 목적에 따라 NetworkService 등에서 실행되지 않지만 자체 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 이름으로 표시되지 않으므로 "사용자 또는 그룹 선택"대화 상자에서 검색 할 때 실제로 나타나지 않습니다. , 그것을 찾을 수는 있지만 실제 시스템 계정으로 생각하고 그것을 처리하려고 시도합니다 ... 작동하지 않으며 찾을 수 없다는 오류 메시지가 표시됩니다).
내가 작동하게 된 방법은 다음과 같습니다.
- SQL Server Management Studio에서 보안 폴더 (각 개별 데이터베이스 내의 보안 폴더가 아닌 데이터베이스, 서버 개체 등 폴더와 동일한 수준의 보안 폴더)를 찾습니다 .
- 로그인을 마우스 오른쪽 버튼으로 클릭하고 "새 로그인"을 선택하십시오.
- 로그인 이름 필드에 IIS APPPOOL \ YourAppPoolName을 입력 하십시오-검색을 클릭하지 마십시오
- 원하는 다른 값을 입력하십시오 (예 : 인증 유형, 기본 데이터베이스 등).
- 확인을 클릭하십시오
AppPool 이름이 실제로 존재하는 한 이제 로그인이 작성되어야합니다.
CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];
여러 컴퓨터를 사용하는 경우 NETWORK SERVICE, LOCAL SYSTEM, 도메인 계정 또는 SQL 2008 R2 (있는 경우) 관리 서비스 계정 (이러한 인프라가있는 경우 선호)을 사용해야합니다. . Active Directory 도메인에 보이지 않는 계정은 사용할 수 없습니다.
참고로 가상 계정 (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"그룹의 구성원이라는 것 입니다 (실제로는 사용자가 아닌 그룹 임). NETWORK SERVICE 계정과 동일한 방식으로 프로세스가 네트워크에서 시스템으로 인증되는 이유이기도합니다.
액세스를 보호하는 방법은 NETWORK SERVICE 권한이없는이 계정에 의존하지 않고 "NT Service \ MyService"또는 "IIS AppPool \ MyAppPool"에 더 많은 권한을 부여하고 필요한 경우 "사용자"에 대한 권한을 제거하는 것입니다.
더 정확하거나 모순되는 정보가있는 사람은 게시하십시오.
봐에서 : 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. 마지막으로 "데이터베이스 오류에 액세스 할 수 없습니다"라는 메시지가 표시되었습니다
참고 URL : https://stackoverflow.com/questions/1933134/add-iis-7-apppool-identities-as-sql-server-logons
'IT story' 카테고리의 다른 글
한 디렉토리에서 기존 디렉토리로 파일 복사 (0) | 2020.04.24 |
---|---|
클래스 데이터 멤버“:: *”의 포인터 (0) | 2020.04.24 |
Java에서 바이트 리터럴을 어떻게 지정합니까? (0) | 2020.04.23 |
C에서 함수 포인터의 typedef 이해 (0) | 2020.04.23 |
안드로이드 앱에서 인터넷 연결을 확인하기위한 방송 수신기 (0) | 2020.04.23 |