En informática , un nombre de fuente de datos ( DSN , a veces conocido como nombre de fuente de base de datos , aunque " fuentes de datos " pueden comprender 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. Usados más comúnmente en conexión con ODBC , los DSN también existen para JDBC y para 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.
Los atributos de DSN pueden incluir, entre otros:
- 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
- una identificación de usuario para el acceso a los datos (si es necesario)
- una contraseña de usuario para el acceso 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 direccionamiento indirecto ; 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 colectivos (p. Ej., /Etc/odbc.ini, ~ / .odbc.ini) y / o recursos del sistema (p. Ej., Registro de Windows HKLM \ Software \ ODBC \ odbc.ini)
- DSN de archivo : almacenados en el sistema de archivos con un DSN por archivo
Estos se desglosan aún más en
- DSN del sistema : accesibles para todos y cada uno de los procesos y usuarios del sistema, almacenados en una ubicación centralizada (por ejemplo, /etc/odbc.ini, / etc / odbc_file_dsns /
) - DSN de usuario : accesibles solo por el usuario que creó el DSN, almacenados en una ubicación específica del usuario (por ejemplo, ~ / .odbc.ini, ~ / odbc_file_dsns /
)
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 puede tener el siguiente aspecto:
Dim DatabaseObject1 Establezca DatabaseObject1 = Servidor . CreateObject ( "ADODB.Connection" ) DatabaseObject1 . Abierto ( "DSN = ejemplo;" )
En PHP que usa 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 puede parecerse al siguiente
require_once ( "DB.php" ); // $ dsn = ": // : @ : / "; ña> $ dsn = "mysql: // john: pass @ localhost: 3306 / my_db" ; $ db = DB :: conectar ( $ dsn );
[ aclaración necesaria ]
PHP con PDO.
$ dsn = "mysql: host = localhost; dbname = ejemplo" ; $ dbh = nuevo PDO ( $ dsn , $ nombre de usuario , $ contraseña );
En Perl , utilizando el módulo DBI de Perl , cada controlador tiene su propia sintaxis para los atributos de DSN. El único requisito que hace DBI es que toda la información, excepto el nombre de usuario y la contraseña, se proporcione en un solo argumento de cadena.
my $ dsn = "DBI: Pg: database = finance; host = db.example.com; port = $ port" ; $ dsn = "DBI: mysql: base de datos = $ base de datos; host = $ nombre de host; puerto = $ puerto" ; $ dsn = "DBI: Oracle: host = $ host; sid = $ sid; puerto = $ puerto" ; $ dsn = "DBI: SQLite: dbname = $ dbfilename" ;my $ dbh = DBI -> connect ( $ dsn , 'nombre de usuario' , 'contraseña' );