[sql-server] 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 이름으로 표시되지 않으므로 “사용자 또는 그룹 선택”대화 상자에서 검색 할 때 실제로 나타나지 않습니다. , 그것을 찾을 수는 있지만 실제 시스템 계정으로 생각하고 그것을 처리하려고 시도합니다 … 작동하지 않으며 찾을 수 없다는 오류 메시지가 표시됩니다).

내가 작동하게 된 방법은 다음과 같습니다.

  1. SQL Server Management Studio에서 보안 폴더 (각 개별 데이터베이스 내의 보안 폴더가 아닌 데이터베이스, 서버 개체 등 폴더와 동일한 수준의 보안 폴더)를 찾습니다 .
  2. 로그인을 마우스 오른쪽 버튼으로 클릭하고 “새 로그인”을 선택하십시오.
  3. 로그인 이름 필드에 IIS APPPOOL \ YourAppPoolName을 입력 하십시오-검색을 클릭하지 마십시오
  4. 원하는 다른 값을 입력하십시오 (예 : 인증 유형, 기본 데이터베이스 등).
  5. 확인을 클릭하십시오

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삶이 다시 좋아집니다 !!! 이것이 다음 사람의 고통을 덜어 주길 바랍니다 ….

여기에 이미지 설명을 입력하십시오


댓글 달기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다