jueves, 30 de septiembre de 2010

Cambio de Login a Usuario en una Base de Datos

En varias ocasiones había tenido que remover la autorización de algún usuario a una base de datos, generalmente porque importaba el usuario con la base y este quedaba sin cuenta de Login. El día de hoy encontré por la web como corregir este pequeño error al ejecutar el Stored Procedure del sistema sp_change_users_login.

A continuación describo como se utiliza:
USE NombreBaseDatos
EXEC sp_change_users_login 'Update_One', 'NombreUsuario', 'LoginUsuario'

lunes, 6 de septiembre de 2010

Cambio de Cadenas de Conexión por Server

Uno de los problemas que se me presentaban constantemente cuando comencé en esto del desarrollo en .net, era que al publicar un proyecto del entorno de desarrollo al entorno de producción, olvidaba corregir la cadena de conexión.

Ya sé que no a cualquiera le pasa, y hasta es posible que algún framework ya cuente con alguna solución para esto, pero como no las conozco, opte por la solución más lógica: declarar una cadena de conexión por servidor. A continuación muestro como hacerlo.
  1. En el Web.Config del sitio agregamos una cadena de conexión por cada servidor que utilizamos (con el mismo nombre que el servidor):
       <connectionstrings>
           <add name="MiServer1" connectionString="Data Source…" >
           <add name="MiServer2" connectionString="Data Source…" >
       </connectionstrings>
  2. Agregamos en el código de cada página que requiera acceder a las cadenas de conexión la biblioteca System.Configuration
  3. En lugar de utilizar directamente el nombre o incluso el ConnectionString tomamos el nombre del server con la instrucción Page.Server.MachineName de modo que quedaría de la siguiente manera:
    MiDataSource.ConnectionString = ConfigurationManager.ConnectionStrings[Page.Server.MachineName].ToString()
De este modo la cadena que se utilizara siempre corresponderá al nombre del servidor, de modo que no tendrás que modificar el Web.Config cuando la aplicación sea publicada.