Obtener la lista de usuarios actuales

20/10/2003 - 16:03 por XTV \(Madrid\) | Informe spam
Hola; quiera obtener la lista de usuarios que estan conectados a cierta base
de datos SQL Server en cierto momento.

En principio estoy haciendolo en VB.NET. He escrito el siguiente código:

Sub Usuarios()
Dim Server As SQLDMO.SQLServer
Try
Server = New SQLDMO.SQLServer
Catch
Return
End Try
If Me.cbServer.Text <> "" Then
Try
Server.LoginTimeout = 3
Server.LoginSecure = True
Server.Connect(Me.cbServer.Text)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "No se ha podido conectar
con el servidor")
Return
End Try
End If
Dim x As Int16
x = Server.Databases.Item(cbDataBase.Text).EnumUsers.Properties.Count
MsgBox(x & " usuarios en " & cbDataBase.Text)
End Sub

No obstante debe de haber algo mal, pues siempre me da el mismo número de
usuarios, independientemente de que escoga en el combo cbDataBase una base
de datos u otra.

¿Qué esta pasando?; ¿Puedo obtener la cantidad de usuarios (y si puede ser
también el nombre de usuario NT de cada uno, mejor que mejor) por otro
método?

Muchas gracias

Saludos

XTV
 

Leer las respuestas

#1 Fabián Nuñez Avila
20/10/2003 - 20:13 | Informe spam
XTV buenas tardes!!!
Fijate en los BOL los procedimientos almacenados SP_WHO2 y
SP_LOCK a lo mejor pueden hacer lo que necesitas
por ejemplo puedes ejecutar el procedimiento sp_who2 de la
siguiente forma.
sp_who2 'active'

Saludos

Hola; quiera obtener la lista de usuarios que estan


conectados a cierta base
de datos SQL Server en cierto momento.

En principio estoy haciendolo en VB.NET. He escrito el


siguiente código:

Sub Usuarios()
Dim Server As SQLDMO.SQLServer
Try
Server = New SQLDMO.SQLServer
Catch
Return
End Try
If Me.cbServer.Text <> "" Then
Try
Server.LoginTimeout = 3
Server.LoginSecure = True
Server.Connect(Me.cbServer.Text)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "No se


ha podido conectar
con el servidor")
Return
End Try
End If
Dim x As Int16
x = Server.Databases.Item


(cbDataBase.Text).EnumUsers.Properties.Count
MsgBox(x & " usuarios en " & cbDataBase.Text)
End Sub

No obstante debe de haber algo mal, pues siempre me da el


mismo número de
usuarios, independientemente de que escoga en el combo


cbDataBase una base
de datos u otra.

¿Qué esta pasando?; ¿Puedo obtener la cantidad de


usuarios (y si puede ser
también el nombre de usuario NT de cada uno, mejor que


mejor) por otro
método?

Muchas gracias

Saludos

XTV



.

Preguntas similares