• Publicidad

Conectarse a Sybase

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Conectarse a Sybase

Notapor Lordgenome » 2012-04-11 07:39 @360

Hola, el problema que tengo es que quiero conectarme a un servidor Sybase.

Todas las conexiones están bien, estoy probando con un *.pl aparte para realizar "otra" conexión, pero me tira un error.

He acá el código...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.         use strict;
  2.         use warnings;
  3.         use Sybase::Sybperl;
  4.         #use sybase;
  5.  
  6.                 $dbproc = dblogin("server", "pass", "user");
  7.                 dbcmd($dbproc, "select * from sysusers");
  8.                 dbsqlexec($dbproc);
  9.                 dbresults($dbproc);
  10.                 while(@data = dbnextrow($dbproc)) {
  11.                         print "@data\n";
  12.                 }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


El error por consola me tira...

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. Can´t locate Sybase/Sybperl.pm in @inc <@inc contains: C:/Users(Ruta)/lib C:/Users(Ruta)/lib.> at prueba.pl line 3
  2. BEGIN failed--compilation aborted at prueba.pl line 3
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Por lo que entiendo es que no reconoce el "use" pero ya intenté de otras maneras y nada.

¿Alguna idea?

Además, si es que saben codificar la contraseña sería esplendido :lol:

¿Donde está la conexión de DBI (Archivo)?

Gracias :)
Lordgenome
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-04-11 07:06 @338

Publicidad

Re: Conectarse a Sybase

Notapor explorer » 2012-04-11 09:11 @424

Bienvenido a los foros de Perl en Español, Lordgenome.

El error dice que el módulo Sybase::Sybperl no está instalado en el sistema.

Debes seguir un procedimiento de instalación.

No sé a qué te refieres con lo de DBI. DBI es el sistema unificado de acceso a base de datos. Si quieres usarlo con Sybase, debes tener instalado el módulo DBD::Sybase.

Para codificar contraseñas en código fuente, es complicado, pero se puede hacer... Lo codificas fuera del código a una secuencia codificada y la metes dentro del código, junto con una subrutina que lo descodifique.

Lo malo es que esto no evita que alguien mire el código y ponga una línea más que saque la contraseña a pantalla añadiendo un simple print() al final de la subrutina.

Lo mejor sería ajustar los permisos de lectura del programa para que solo tengan acceso a él las personas y programas que queremos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conectarse a Sybase

Notapor Lordgenome » 2012-04-11 10:12 @466

Me expliqué mal con lo de la codificación de la contraseña.

Lo que necesito es que en la conexión cliente-servidor, la contraseña pase codificada. El servidor no se puede tocar por lo que el cambio debería ser del lado del cliente.

En el archivo sybase ocs.cfg se puede configurar para que se haga la codificación en caso de que la llamada sea UNIX, JAVA, ISQL, BCP pero no lo sé si acepta Perl.

He leído que se puede hacer modificando el dbh-->connect() agregando...

$dbh->DBI->connect("dbi:Sybase:encryptPassword=1", $user, $password);

No sé dónde está ese código de conexión...

¿Funciona así?
Lordgenome
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-04-11 07:06 @338

Re: Conectarse a Sybase

Notapor explorer » 2012-04-11 10:31 @479

Pero es que el método connect() se debe aplicar a un objeto DBI.

Tu programa no usa el DBI. Utiliza otro módulo.

En la página de manual de Sybase::Sybperl se recomienda no usarlo porque es muy viejo. En su lugar, recomienda usar Sybase::DBlib o Sybase::CTlib , que pertenecen a la misma distribución (sybperl), y sí que tienen soporte para la codificación de contraseñas.

O usar DBI + DBD::Sybase.

Me temo que te va a tocar reescribir todo el programa...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conectarse a Sybase

Notapor Lordgenome » 2012-04-11 13:37 @609

¡ja,ja,ja! No, no, olvida ese programa, era solo una prueba para probar la conexión. El original sí se conecta. Ahora el drama es codificar la contraseña.

Hace rato que mis dardos están apuntando a modificar el

$dbh = Sybase::DBlib->dblogin([$user [, $pwd [, $server [, $appname, [{additional attributes}] ]]]])

¿Qué es la conexión o ese módulo dblogin (que no sé dónde se encuentra.)

En additional attributes, ¿cómo se trabaja? ¿Se puede agregar DBSETLENCRYPT? (que no sé cómo se trabaja.) O quizás

{CON_PROPS => { CS_SEC_ENCRYPTION => 1 }};
Lordgenome
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-04-11 07:06 @338

Re: Conectarse a Sybase

Notapor explorer » 2012-04-11 14:38 @651

La información de los métodos de Sybase::DBlib los tienes en su propia página.

Y no hay mucha información sobre DBSETLENCRYPT(). El ejemplo que pones CON_PROPS es de Sybase::CTlib.

Quizás encuentres más ejemplos buscando por Internet.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados