El otoño nos regala imágenes impresionantes.
Fotografía de Francesco Martini.
En la restauración de un backup de una base de datos SQL Server en otro servidor, es bastante frecuente que los usuarios se hayan migrado pero queden «huérfanos». ¿Qué es ese concepto? ¿Y qué hago ahora?
Vamos primero con la teoría, a entender la razón por la que pasa esto:
En SQL Server creamos un inicio de sesión para dar acceso a una aplicación o usuario. Este inicio de sesión se define para toda la instancia. Si este inicio de sesión tiene permiso para el acceso a varias bases de datos, este tendrá que tener un usuario en cada una de ellas.
Para consultar los inicios de sesión definidos en la instancia, los encontramos en la base de datos master
use master go select sid, name from syslogins
Para ver los usuarios definidos en una base de datos, los encontramos en la tabla sysusers
use nombre_base_de_datos go select uid, name, sid from sysusers where islogin=1
Cuando el mapeo entre el SID de la instancia (inicio de sesión) y el SID de la base de datos (usuario) se rompe, el usuario definido en la base de datos se queda huérfano. ¿Por qué pasa esto? Si se hace un backup completo de una base de datos, estamos llevándonos también la definición de todos los usuarios creados en la base de datos. Si importamos dicha base de datos en otra instancia, es probable que los SID previamente definidos en la instancia no coincida con los SID de la base de datos que estamos importando. En la restauración, esa inconsistencia en el mapeo no se resuelve.
¿Y ahora qué hacemos?
La solución para arreglar este problema es la utilización del procedimiento almacenado sp_change_users_login (Transact-SQL)
use nombre_base_de_datos go sp_change_users_login @Action = 'Report' go
De este modo obtenemos la relación de usuarios que no tienen vinculado un inicio de sesión. Una vez identificados, vamos «reparándolos» uno a uno con la siguiente ejecución del procedimiento almacenado:
sp_change_users_login @Action = 'update_one', @usernamepattern='nombre_usuario', @loginname='nombre_usuario' go
A partir de este momento la vinculación se ha reparado y se podrá utilizar el inicio de sesión para el acceso a la base de datos.
Lo siento… siento haber sido tan complicado, tan poco comprensivo, tan cobarde al no querer enfrentarme a lo que realmente necesitaba.
Siento haberte causado tanto daño, con lo bien que siempre te has portado conmigo. Siento no haber tenido la madurez suficiente como para entender lo que me pasaba, entender que la ansiedad no es buena consejera.
Lo siento… más de una década he necesitado para entender que siempre eras tú, que siempre has sido tú.
Decenas de caras tras una cerveza o un café para descubrir al alma gemela, pero siempre estaba tu recuerdo.
No espero que me perdones, no espero una nueva oportunidad… simplemente decir que, hoy más que nunca… lo siento.
Fotografía de Kennedy Garrett.
Vuelve el otoño, vuelven a caer las hojas sobre las aceras de las calles de Madrid… este año se quedan amontonadas durante mucho más tiempo en los rincones de la calle, líneas trazadas sobre los adoquines dibujando los caminos por los que los peatones pasamos sistemáticamente.
La lluvia se une al cóctel que se torna peligroso, resbalones que pueden dar con tus huesos sobre el suelo, ejercicios de equilibrio sobre el tapiz natural que viste nuestras calles.
Llegó el otoño, con el frío y la lluvia. Bienvenido.
fotografía de jrseeson.