sql-server 'iis - Agregar las identidades de AppPool de IIS 7 como inicios de sesión de SQL Server




error del (8)

Estoy ejecutando un sitio web de IIS 7 con una aplicación de modo de canalización integrada . AppPools NO se ejecuta bajo NetworkService, etc. identidad (por propósito), pero usa su propia Identidad de AppPool (IIS AppPool \ MyAppPool).

Esta es una llamada cuenta de servicio o cuenta virtual. (una cuenta de usuario, que no es una cuenta completa ...)

Me gustaría otorgar a esta cuenta de servicio (IIS AppPool \ MyAppPool) permisos para conectarse a mi SQL Server 2008 Express (que se ejecuta en modo de autenticación mixta).

Si bien SQL Server puede agregar cualquier cuenta de usuario normal, la cuenta virtual IIS AppPool \ MyAppPool no se puede agregar a los inicios de sesión válidos (SQL Server dice que no se puede encontrar la cuenta).

¿Hay algún truco, algo que necesito habilitar para hacer que las cuentas virtuales funcionen? (El proceso w3wp.exe se ejecuta bajo esta identidad de acuerdo con taskmgr, pero tampoco puedo usar la cuenta en la seguridad NTFS ...)

¡Gracias por tu ayuda!


Answers

En mi caso, el problema fue que comencé a crear un proyecto de muestra de MVC Alloy desde cero utilizando la extensión Visual Studio / Episerver y funcionó bien cuando se ejecutó utilizando Visual Studio iis express local. Sin embargo, de forma predeterminada, apunta la base de datos sql a LocalDB y cuando implementé el sitio en IIS local, comenzó a dar errores a algunos de los errores iniciales que resolví: 1. agregando el enlace de la URL del sitio local a C: / Windows / System32 / drivers / etc / hosts 2. Luego, al editar el archivo application.config, se encontró la ubicación del archivo haciendo clic derecho en IIS Express en la esquina derecha inferior de la pantalla cuando se ejecuta el sitio utilizando Visual Studio y se agregó el enlace allí para la URL local de iis. 3. Finalmente, me quedé con "no puedo acceder a los errores de la base de datos", por lo que creé una nueva base de datos en blanco en Sql express y cambié la cadena de conexión en la configuración web para apuntar a mi nueva base de datos y luego en la consola del administrador de paquetes (usando Visual Studio) ejecutada Comandos de Episerver DB como - 1. initialize-epidatabase 2. update-epidatabase 3. Convert-EPiDatabaseToUtc


CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];

Como una nota adicional, los procesos que utilizan cuentas virtuales (NT Service \ MyService e IIS AppPool \ MyAppPool) todavía se están ejecutando en la cuenta "NETWORK SERVICE" como sugiere esta publicación http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx . La única diferencia es que estos procesos son miembros de los grupos "NT Service \ MyService" o "IIS AppPool \ MyAppPool" (ya que en realidad son grupos y no usuarios). Esta es también la razón por la que los procesos se autentican en la red como la máquina de la misma manera que lo hace la cuenta de SERVICIO DE RED.

La forma de asegurar el acceso es no depender de que estas cuentas no tengan privilegios de SERVICIO DE RED, sino otorgar más permisos específicamente a "NT Service \ MyService" o "IIS AppPool \ MyAppPool" y eliminar los permisos para "Usuarios" si es necesario.

Si alguien tiene información más precisa o contradictoria por favor publique.


Esto puede ser lo que buscas ...

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

También recomendaría a largo plazo considerar un usuario de dominio con derechos limitados, lo que está intentando funciona bien en un escenario de máquina de silo, pero tendrá que hacer cambios si se muda a otra máquina para el servidor de DB.



Si va a través de máquinas, debe usar el SERVICIO DE RED, EL SISTEMA LOCAL, una cuenta de dominio o una cuenta de servicio administrada SQL 2008 R2 (si la tiene) (es mi preferencia si tuviera esa infraestructura) . No puede usar una cuenta que no sea visible para el dominio de Active Directory.


La "IIS APPPOOL \ AppPoolName" funcionará, pero como se mencionó anteriormente, no parece ser un nombre de AD válido, así que cuando lo busque en el cuadro de diálogo "Seleccionar usuario o grupo", no aparecerá (en realidad , lo encontrará, pero pensará que es una cuenta real del sistema, y ​​tratará de tratarlo como tal ... lo que no funcionará, y le dará un mensaje de error acerca de que no se ha encontrado).

Cómo lo he hecho funcionar es:

  1. En SQL Server Management Studio, busque la carpeta de seguridad (la carpeta de seguridad en el mismo nivel que las carpetas de bases de datos, objetos de servidor, etc., no la carpeta de seguridad dentro de cada base de datos individual)
  2. Haga clic derecho en los inicios de sesión y seleccione "Nuevo inicio de sesión"
  3. En el campo Nombre de inicio de sesión, escriba IIS APPPOOL \ YourAppPoolName - no haga clic en buscar
  4. Rellene cualquier otro valor que desee (es decir, tipo de autenticación, base de datos predeterminada, etc.)
  5. Haga clic en Aceptar

Mientras exista el nombre de AppPool, ahora se debe crear el inicio de sesión.


Left Join y Left Join Left Outer Join son uno y el mismo . El primero es la taquigrafía para el segundo. Lo mismo puede decirse acerca de la relación Right Join la Right Join y Right Join Right Outer Join . La manifestación ilustrará la igualdad. Se han proporcionado ejemplos de trabajo de cada consulta a través de SQL Fiddle . Esta herramienta permitirá la manipulación práctica de la consulta.

Dado

Unirse a la izquierda y unir a la izquierda

Resultados

Unir a la derecha y Unir a la derecha

Resultados





sql-server iis-7