Mensaje enviado por rsauce <rsauce@sagyp.mecon.gov.ar>
Hola Cesar, mirá yo tomé un procedimiento de la base MASTER del SQL SERVER, que le cambia la clave de conexión al sql server al usuario, SP_PASSWORD.
y en Visual Basic hice una función que como funcionaba bién , así quedó (no me puse a corregirla ni optimizarla ni nada)
Public Function CambiaPassword(Usuario As String, OldPassword As String, NewPassword As String) As Boolean
Dim conec As ADODB.Connection
Dim cm As ADODB.Command
Dim rs As ADODB.Recordset
Dim p1 As ADODB.Parameter
Dim p2 As ADODB.Parameter
Dim p3 As ADODB.Parameter
On Error GoTo Cancela
Set rs = New ADODB.Recordset
Set conec = New ADODB.Connection
Set cm = New ADODB.Command
Cadena = "provider=sqloledb.1;integrated Security=SSPI; persist security info=False; initial catalog=Master; data source=" & Server
conec.Open Cadena
conec.CursorLocation = adUseClient
cm.CommandText = "sp_password"
cm.CommandType = adCmdStoredProc
Set p1 = cm.CreateParameter("Old", adBinary, adParamInput, 20, OldPassword)
Set p2 = cm.CreateParameter("New", adBinary, adParamInput, 20, NewPassword)
Set p3 = cm.CreateParameter("LoginName", adBinary, adParamInput, 20, Usuario)
cm.Parameters.Append p1
cm.Parameters.Append p2
cm.Parameters.Append p3
Set cm.ActiveConnection = conec
Set rs = cm.Execute
CambiaPassword = True
Exit Function
Cancela:
' detectar error
Select Case Err.Number
Case -2147467259
MsgBox "No hay conexión con el Servidor", vbCritical, "ERROR"
Case -2147217865
MsgBox "Error en Acceso: Acceso Inválido", vbCritical, "ERROR"
Case -2147217900
MsgBox "Clave Actual Errónea" & vbCrLf & "la clave No puede ser cambiada", vbCritical, "Alerta de Truchada"
Case -2147217843
MsgBox "Usuario o Clave Erróneas", vbCritical, "ERROR"
Case Else
Open "error.log" For Append As #1
Print #1, "Cambio de Pass: "; Now; ":"; Usuario; " - Error: " & Err.Number; " : "; Err.Description
Close #1
resp = MsgBox("Error: " & Err.Number & vbCrLf & Err.Description, vbRetryCancel, "Error Inesperado")
If resp = 4 Then
Resume
End If
End Select
CambiaPassword = False
End Function
Ricardo
Cesar Altamirano Arbayza wrote:
>Hola Listeros,
>Tengo que crear una tabla de usuarios para el LOGIN a una aplicacion,
>debo guardar en esta tabla de SQL Server el codigo de usuario y su password.
>¿Existe alguna facilidad del SQL para encriptar este campo password o tengo
>que usar algun algoritmo propio?
>¿Es seguro esta forma de plantear la seguridad de acceso al sistema?
>Saludos,
>Cesar A.