En informática , un nombre de fuente de datos ( DSN , a veces conocido como nombre de fuente de base de datos , aunque las " fuentes de datos " pueden incluir otros repositorios además de las bases de datos ) es una cadena que tiene una estructura de datos asociada que se utiliza para describir una conexión a una fuente de datos. Los DSN, que se utilizan con mayor frecuencia en relación con ODBC , también existen para JDBC y otros mecanismos de acceso a datos. El término a menudo se superpone con " cadena de conexión ". La mayoría de los sistemas no distinguen entre DSN o cadenas de conexión y, a menudo, el término se puede utilizar indistintamente. [1]
Los atributos DSN pueden incluir, entre otros: [2]
- el nombre de la fuente de datos
- la ubicación de la fuente de datos
- el nombre de un controlador de base de datos que puede acceder a la fuente de datos
- un ID de usuario para acceder a los datos (si es necesario)
- una contraseña de usuario para acceder a los datos (si es necesario)
El administrador del sistema de una máquina cliente generalmente crea un DSN separado para cada fuente de datos relevante.
La estandarización de DSN ofrece un nivel de indirección ; varias aplicaciones (por ejemplo: Apache / PHP e IIS / ASP ) pueden aprovechar esto para acceder a fuentes de datos compartidas.
Tipos de nombre de fuente de datos
Existen dos tipos de DSN:
- DSN de máquina : almacenados en archivos de configuración colectiva (por ejemplo, /etc/odbc.ini, ~/.odbc.ini) o recursos del sistema (por ejemplo, Registro de Windows HKLM\Software\ODBC\odbc.ini)
- DSN de archivo : se almacenan en el sistema de archivos con un DSN por archivo
Estos se desglosan además en
- DSN del sistema : accesibles para todos los procesos y usuarios del sistema, almacenados en una ubicación centralizada (por ejemplo,
/etc/odbc.ini,//etc/odbc_file_dsns/<filename>) - DSN de usuario : accesibles solo para el usuario que creó el DSN, almacenados en una ubicación específica del usuario (por ejemplo,
/~/.odbc.ini,/~/odbc_file_dsns/<filename>)
Ejemplo de uso
Los usuarios de software (por ejemplo, Crystal Reports, Microsoft Excel, PHP, Perl, Python, Ruby) pueden enviar consultas CRUD (Crear, Leer, Actualizar, Eliminar) a una fuente de datos estableciendo una conexión con el DSN.
El código ASP ( VBScript ) para abrir una conexión DSN podría verse así:
Dim DatabaseObject1 Establezca DatabaseObject1 = Server.CreateObject ( " ADODB.Connection " ) DatabaseObject1.Open ( " DSN=example; " )
En PHP, al usar el paquete PEAR::DB para abrir una conexión sin un DSN externo (una "conexión sin DSN", es decir, usando una cadena de conexión), el código podría parecerse al siguiente
require_once ( "DB.php" );
//$dsn = "<controlador>://<nombre de usuario>:<contraseña>@<host>:<puerto>/<base de datos>";
$dsn = "mysql://john:contraseña@localhost:3306/mi_base_de_datos" ;
$db = DB :: connect ( $dsn );
[ aclaración necesaria ]
PHP con PDO.
$dsn = "mysql:host=localhost;dbname=ejemplo" ;
$dbh = nuevo PDO ( $dsn , $nombreusuario , $contraseña );
En Perl , al utilizar el módulo Perl DBI , cada controlador tiene su propia sintaxis para los atributos DSN. El único requisito que establece DBI es que toda la información, excepto el nombre de usuario y la contraseña, se proporcione en un único argumento de cadena.
mi $dsn = "DBI:Pg:database=finanzas;host=db.example.com;puerto=$puerto" ; $dsn = "DBI:mysql:database=$basededatos;host=$nombrehost;puerto=$puerto" ; $dsn = "DBI:Oracle:host=$host;sid=$sid;puerto=$puerto" ; $dsn = "DBI:SQLite:dbname=$nombrearchivodb" ;
mi $dbh = DBI -> connect ( $dsn , 'nombre de usuario' , 'contraseña' );
Véase también
Referencias
- ^ Cadena de conexión y DSN
- ^ Cadenas de conexión DSN ODBC