sql-server - usuario - sql password recovery
El administrador de conexión SSIS no almacena la contraseña de SQL (8)
Solía tener un dts que tenía conexión de autenticación de servidor SQL. Básicamente, la contraseña del ID de usuario se almacena en el propio paquete. Ahora, cuando voy a SSIS, la contraseña no se almacena en el paquete. Vi esto cuando busco en google el problema. http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/c720e694-2f58-483a-9cd7-3feb7de2db7b pero nadie parece haber dado una buena resolución. ¿Puede alguno de ustedes ayudar por favor? Gracias por adelantado
Aquí hay una opción más simple que funciona cuando encuentro esto.
Después de crear la conexión, seleccione la conexión y abra las Propiedades. En la categoría Expresiones encontrar Contraseña. Vuelva a ingresar la contraseña y presione Enter. Ahora se guardará en la conexión.
El comportamiento diseñado en SSIS es evitar el almacenamiento de contraseñas en un paquete, porque es una mala práctica / no es seguro hacerlo.
En su lugar, use la autenticación de Windows, por lo que no almacena secretos en paquetes o archivos de configuración, o, si eso es realmente imposible en su entorno (tal vez no tenga un dominio de Windows, por ejemplo), entonces tiene que usar una solución como se describe en http://support.microsoft.com/kb/918760 (correcto de Sam, simplemente lea más en ese artículo). La respuesta más simple es un archivo de configuración que vaya con el paquete, pero luego debe preocuparse de que el archivo de configuración se almacene de manera segura para que alguien no pueda leerlo y tomar las credenciales.
Esa respuesta apunta a este artículo: http://support.microsoft.com/kb/918760
Aquí están las soluciones propuestas, ¿las has evaluado?
- Método 1: utilizar una cuenta de proxy del Agente SQL Server
Cree una cuenta de proxy del Agente SQL Server. Esta cuenta de proxy debe usar una credencial que permita que el Agente SQL Server ejecute el trabajo como la cuenta que creó el paquete o como una cuenta que tiene los permisos necesarios.
Este método funciona para descifrar secretos y satisfacer los requisitos clave del usuario. Sin embargo, este método puede tener un éxito limitado porque las claves de usuario del paquete SSIS involucran al usuario actual y la computadora actual. Por lo tanto, si mueve el paquete a otra computadora, este método aún puede fallar, incluso si el paso de trabajo utiliza la cuenta de proxy correcta. Volver a la cima
- Método 2: Establezca la propiedad del Nivel de Protección del Paquete SSIS en ServerStorage
Cambie la propiedad del nivel de protección del paquete SSIS a ServerStorage. Esta configuración almacena el paquete en una base de datos de SQL Server y permite el control de acceso a través de los roles de base de datos de SQL Server. Volver a la cima
- Método 3: Establezca la propiedad ProtectionLevel del paquete SSIS en EncryptSensitiveWithPassword
Cambie la propiedad del Nivel de Protección del Paquete SSIS a EncryptSensitiveWithPassword. Esta configuración utiliza una contraseña para el cifrado. Luego puede modificar la línea de comando del paso de trabajo del Agente SQL Server para incluir esta contraseña.
- Método 4: usar los archivos de configuración del paquete SSIS
Use los archivos de configuración del paquete SSIS para almacenar información confidencial y luego almacene estos archivos de configuración en una carpeta segura. Luego puede cambiar la propiedad ProtectionLevel a DontSaveSensitive para que el paquete no esté encriptado y no intente guardar secretos en el paquete. Cuando ejecuta el paquete SSIS, la información requerida se carga desde el archivo de configuración. Asegúrese de que los archivos de configuración estén protegidos adecuadamente si contienen información confidencial.
- Método 5: crear una plantilla de paquete
Para una resolución a largo plazo, cree una plantilla de paquete que use un nivel de protección que difiera de la configuración predeterminada. Este problema no ocurrirá en futuros paquetes.
Hay una manera fácil de hacer esto. No sé por qué la gente está dando respuestas complicadas.
Haga doble clic en el paquete SSIS. Luego vaya al administrador de conexión, seleccione DestinationConnectionOLDB y luego agregue la contraseña junto al campo de inicio de sesión.
Ejemplo: Data Source=SysproDB1;User ID=test;password=test;Initial Catalog=ASBuiltDW;Provider=SQLNCLI11;Auto Translate=false;
Haga lo mismo para SourceConnectionOLDB.
Puede almacenar la contraseña en la cadena de configuración yendo a propiedades y agregando password = su contraseña, pero es muy importante poner un espacio antes de la palabra ''contraseña'' y después de '';'' Como se muestra abajo:
Data Source=50.21.65.225;User ID=vc_ssis; password=D@mc317Feo; Initial Catalog=Sales; Provider=SQLNCLI10.1; Persist Security Info=True;Auto Translate=False; Application Name=SSIS-PKG_CustomerData-{2A666833-6095-4486-C04F-350CBCA5C49E}IDM11.Sales.dev;
Espero que esto ayude --Vijay K
Sucedió conmigo también y se solucionó de la siguiente manera:
Se creó una cadena de conexión basada en expresiones y se guardó la contraseña en una variable y se usó.
Utilizo una variable para almacenar toda la cadena de conexión y la paso a la expresión ConnectionString. Esto sobrescribe todas las configuraciones para la conexión y le permite almacenar la contraseña.
Verifique el archivo de configuración en el proyecto, establezca la ID y la contraseña allí, para que ejecute el paquete