Ver Mensaje Individual
  #1  
Antiguo 20-11-2005
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Reputación: 21
HombreSigma Va por buen camino
Como crear un usuario SQLSERVER desde ASP.NET sin ser DBA o SA?

¿Como crear un usuario de una BD SQLSERVER y su clave sin ser un usuario administrador?

Pretendo crear o actualizar un usuario y su clave en la base de datos SQLSERVER mediante el siguiente procedimiento:

sub ActualizarClavePermisos()
'Actualiza clave y permisos
dim vrComandoSQL as SqlCommand= New SqlCommand()'

dim vrParametroSQL as New SqlParameter
vrParametroSQL=vrComandoSQL.Parameters.Add("@prLogin",sqlDbType.varchar)
vrParametroSQL.Direction=ParameterDirection.Input
vrParametroSQL.Value=clmatIdUsuario.Text'

vrParametroSQL=vrComandoSQL.Parameters.Add("@prClave",sqlDbType.varchar)
vrParametroSQL.Direction=ParameterDirection.Input
vrParametroSQL.Value=tbxxxClave.Text

vrParametroSQL=vrComandoSQL.Parameters.Add("@prFuncion",sqlDbType.varchar)
vrPArametroSQL.Direction=ParameterDirection.Input
vrParametroSQL.Value="UsuarioNormal"

with vrComandoSQL
.Connection=vrBaseDatos.vrSqlConexion
'.Transaction=objTrans
.CommandText="spAutorizarUsuarioNormal"
.CommandType=CommandType.StoredProcedure
.ExecuteScalar
end with
end sub

La idea es que el usuario sea el mismo usuario de la base de datos y que la clave por tanto corresponde a la misma requerida para acceder la base de datos.

Obviamente para ejecutar el procedimiento anterior requiero de un usuario administrador de BD por lo que invoco el método anterior abriendo la BD con la clave de un usuario administrador asi:
---------------------------------------------------------------------
dim vrMensajeBaseDatos=vrBaseDatos.ConectarABaseDatos("SA","k")
if vrMensajeBAseDatos<>"Open" then
lblMensaje.Text="No pudo abrirse la base de datos. " & vrMensajeBaseDatos
else
ActualizarClavePermisos()
etcétera ....
---------------------------------------------------------------

ConectarABaseDatos es una rutina que arma la cadena de conexión con usuario "SA" y clave "K" y luego abre la base de datos como es normal.

Lo que no me parece recomendable es usar SA y k explicitamente en el código además que el el administrador de base de datos puede cambiar la clave en cualquier momento y la rutina de conexión no funcionaría.

¿Como crear un usuario y su clave en SQLSERVER sin ser un usuario administrador?
Es posible esto?

Gracias por cualquier información.
__________________
SigmaMan
Responder Con Cita