Conexiones Oracle en DTSx. Solución.

No replies
Imagen de josimac
Offline
Joined: 08/05/2008
Puntos: 12

Un problema bastante común cuando realizamos un proyecto que tiene lectura y/o escritura desde una dts a un oracle, es que cuando se crea un job de ejecución se pierde el password de acceso a oracle.
Una solución a esto es editar las conexiones del paquete dentro del job y ponerle a mano el password. El problema es que cada vez que cambiamos la dts se tiene que hacer lo mismo.

La solución definitiva ha esto es crear una variable de tipo string en el paquete que contiene la cadena de conexión completa.
Dicha cadena sería: "Data Source=;User ID=;Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Password=;"

Una vez hecho esto, hay que entrar en la propiedades de la conexión en el "Connection Manager" (parte inferior de la dts)y añadir una expresión clicando con el ratón en la elipse.
Añadir una expresión de tipo "ConnectionString" y arrastar en el diálogo la varible que hemos rellenado antes.

Ya está.

Saludos!

Contenido relacionado

  • Por obvias razones de seguridad no se puede consultar en claro la contraseña de los usuarios de la base de datos, pero un usuario administrador como SYSTEM sí que tiene privilegios para consultar el password encriptado:

    SQL> select password from dba_users where username='SCOTT';
    PASSWORD
    -----------------------------
    F894844C34402B67

    La utilidad de esto está en que lo mismo que nos retorna la SELECT se puede utilizar en una sentencia de modificación de la contraseña;

    SQL> alter user scott identified by values 'F894844C34402B67';

    Con esto no hemos hecho nada, ya que le hemos asignado a SCOTT la misma contraseña que tenía (TIGER), pero si cambiamos la contraseña:

    SQL> alter user scott identified by nuevacontraseña;
    SQL> connect scott/nuevacontraseña
    Connected.

    Y ahora queremos volver a ponerle la contraseña inicial:

    SQL> connect system/dbapwd
    Connected.
    SQL> alter user scott identified by values 'F894844C34402B67';
    User altered.

    SQL> connect scott/tiger
    Connected.

  •  Hola, soy nuevo por aqui. Lo primero felicitar este foro ya que estoy empezando como administrador de bbdd oracle y este me ha servido de gran ayuda. Os explico mi problema:

     

    Tengo dos servidores A y B, con solaris y linux respectivamente. Resulta que en A he creado una serie de vistas que apuntan con un dblink a una tabla que esta en el servidor B. Hasta aqui todo normal, el problema que tengo es que cuando se realiza la consulta en A, el db_link crea la conexion en el servidor B y esta conexión NO la libera una vez haya terminado la consulta. ¿Que puedo hacer?

     

    Para hacer el proposisto anterior, leí en alguna documentacion de oracle que habia que crear un db_link "shared public" y poner el el servidor A en modo compartido, para ello definí los parametros DISTPACHER y SHARED_SERVER.

     

    Mi db_link:

    CREATE SHARED PUBLIC DATABASE LINK SID_SERVIDOR_B

     CONNECT TO "USER_DBLINK" IDENTIFIED BY "XXX"

    AUTHENTICATED BY "USER_DBLINK" IDENTIFIED BY "XXX"

     USING 'DIRECCION_IP:1521/SID_SERVIDOR_B'

     

    Configuracion del servidor en modo compartido:

     

    ALTER SYSTEM SET SHARED_SERVERS = 100;

  • MySQL tiene algunas particularidades a la hora de realizar una conexión desde un cliente remoto que si no las sabemos nos pueden complicar un poco el acceso a una base de datos MySQL desde una máquina diferente a la que aloja la BD.

    Con otras bases de datos, como Oracle o SQL Server, una vez que ningún firewall ni nada por el estilo nos impide acceder desde la máquina cliente a la servidora, con utilizar los datos de acceso de un usuario de base de datos normalmente ya se puede 'entrar'.

    Con MySQL, aunque el acceso al puerto, normalmente el 3306, esté abierto, la base de datos puede estar configurada para no dejar pasar conexiones externas, y el resultado es el mismo que si el puerto estuviera cerrado por un firewall:

    telnet mysql.dataprix.es 3306
    Trying 188.166.233.199...
    telnet: connect to address 188.166.233.199: Connection refused
    telnet: Unable to connect to remote host

    Si se obtiene este resultado conviene consultar el fichero /etc/my.cnf, y comprobar si contiene las variables bind-address o skip-networking.

    Si se encuentra skip-networking y no está comentada, hay que editar el fichero y eliminarla, o convertirla en un comentario para que no tenga efecto y se permitan conexiones externas:

  • Requiero hacer una conexión desde SAP-Oracle a una BD externa utilizando
    DBLINK y DBCON y no logro conectarte.
    Este es el código en ABAP con el detalle de la conexion:
    DATA: CONNECTION LIKE DBCON-CON_NAME.
    connection = 'SIEBPROD'.
    EXEC SQL.
    CONNECT TO :connection
    ENDEXEC.
    IF SY-SUBRC = 0.
    ENDIF.
    EXEC SQL.
    SET CONNECTION :connection
    ENDEXEC.
    EXEC SQL.
    CONNECT TO:'SIEBPROD'.
    ENDEXEC.
    IF SY-SUBRC = 0.
    EXEC SQL.
    SET CONNECTION 'C1'
    ENDEXEC.
    EXEC SQL.
    DISCONNECT 'C1'
    ENDEXEC.
    ENDIF.
    Cuando pruebo la conexión me arroja error 4., es decir, no conecta.
    Me puedes orientas sobre que cosa debo revisar para lograr la conexion.
    Mil gracias
    johnc46

  • Si estamos intendo crear una tarea de flujo de datos que acceda a Oracle usando versiones de cliente igual o inferior a la 10g en entornos de 64bits nos podemos encontrar que al añadir las conexiones aparace un mensaje como el siguiente:

    "Test connection failed because of an error in initializing provider. ORA-06413: Connection not open"

    La causa del problema reside en que las herramientos de cliente (management studio) de sqlserver se instalan por defecto en la carpeta de archivos de programa con "(x86)" y la mayoria de componentes de management studio estan compilado para 32 bits. A esto falta sumarle un bug de oracle con el tratamiento de esta ruta con parentesis y ya tenemos algo que no funciona...

 

 

 

Gestion del Conocimiento    |    Business Intelligence y Analítica    |     Bases de Datos    |      ERP     |      CRM      |     Tendencias tecnológicas