Controlar conexiones

08/11/2005 - 12:18 por FrancisF. | Informe spam
Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de datos
concreta? La idea es licenciar una aplicación por este método. Si se os
ocurre cómo y me podéis ayudar lo agradecería enormemente.
Había pensado en controlar que no hubiera más de x conexiones a la misma
base de datos, o si las hay que sean desde máquinas distintas. Acepto muchas
ideas, estoy un poco perdido.
Gracias.

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
08/11/2005 - 12:30 | Informe spam
Hola, te podes crear una tabla donde cada vez que una maquina se conecta
escribe ahi y cada vez q se desconecta borra de ahi, y el control lo haces
de esa tabla


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
Miembro de GUESS



"FrancisF." escribió en el mensaje
news:
Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de datos
concreta? La idea es licenciar una aplicación por este método. Si se os
ocurre cómo y me podéis ayudar lo agradecería enormemente.
Había pensado en controlar que no hubiera más de x conexiones a la misma
base de datos, o si las hay que sean desde máquinas distintas. Acepto
muchas
ideas, estoy un poco perdido.
Gracias.
Respuesta Responder a este mensaje
#2 Victor Koch
08/11/2005 - 13:47 | Informe spam
Hola Francis

Este select te devuelve los datos de cada conexion abierta a una base de
datos en particular

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor')

Reemplaza 'victor' por el nombre de tu base de datos.

Un saludo, Víctor Koch.


"FrancisF." escribió en el mensaje
news:
Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de datos
concreta? La idea es licenciar una aplicación por este método. Si se os
ocurre cómo y me podéis ayudar lo agradecería enormemente.
Había pensado en controlar que no hubiera más de x conexiones a la misma
base de datos, o si las hay que sean desde máquinas distintas. Acepto


muchas
ideas, estoy un poco perdido.
Gracias.
Respuesta Responder a este mensaje
#3 Maxi [MVP]
08/11/2005 - 14:10 | Informe spam
Hola, y que sucede si en ese servidor hay otras aplicaciones? ;-)


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
Miembro de GUESS



"Victor Koch" <v i c t o r (arroba)correo(punto)waldbott(punto)com(punto)ar>
escribió en el mensaje news:
Hola Francis

Este select te devuelve los datos de cada conexion abierta a una base de
datos en particular

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor')

Reemplaza 'victor' por el nombre de tu base de datos.

Un saludo, Víctor Koch.


"FrancisF." escribió en el mensaje
news:
Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de datos
concreta? La idea es licenciar una aplicación por este método. Si se os
ocurre cómo y me podéis ayudar lo agradecería enormemente.
Había pensado en controlar que no hubiera más de x conexiones a la misma
base de datos, o si las hay que sean desde máquinas distintas. Acepto


muchas
ideas, estoy un poco perdido.
Gracias.




Respuesta Responder a este mensaje
#4 Victor Koch
08/11/2005 - 14:40 | Informe spam
Hola Maxi,

Tenes dos opciones:

1.Que tu aplicacion se conecte a la base con un usuario especifico, de esta
manera acoto las conexiones para ese usuario, (AND logname='xx')

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor') AND logname='xx'

2.Seleccionar unicamente las conexiones de tu aplicacion, (AND
program_name='zzzzzzz')

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor') AND program_name='zzzzzzz'

3.Una combinacion de ambas.

Un saludo, Víctor Koch.


"Maxi [MVP]" escribió en el mensaje
news:#FS$#
Hola, y que sucede si en ese servidor hay otras aplicaciones? ;-)


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
Miembro de GUESS



"Victor Koch" <v i c t o r


(arroba)correo(punto)waldbott(punto)com(punto)ar>
escribió en el mensaje news:
> Hola Francis
>
> Este select te devuelve los datos de cada conexion abierta a una base de
> datos en particular
>
> SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
> MASTER..SYSDATABASES WHERE NAME='victor')
>
> Reemplaza 'victor' por el nombre de tu base de datos.
>
> Un saludo, Víctor Koch.
>
>
> "FrancisF." escribió en el mensaje
> news:
>> Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de


datos
>> concreta? La idea es licenciar una aplicación por este método. Si se os
>> ocurre cómo y me podéis ayudar lo agradecería enormemente.
>> Había pensado en controlar que no hubiera más de x conexiones a la


misma
>> base de datos, o si las hay que sean desde máquinas distintas. Acepto
> muchas
>> ideas, estoy un poco perdido.
>> Gracias.
>
>


Respuesta Responder a este mensaje
#5 Maxi [MVP]
08/11/2005 - 14:46 | Informe spam
Hola vistor, la primer opcion no la recomendaria, atenta contra la seguridad
;-), la segunda es viable :-)

Un solo comentario para el amigo, el uso de las tablas de sistema no es una
politica recomendada por MS en futuras versiones de productos o hasta de
Service pack del mismo producto, podria cambiar las tablas de sistema con lo
cual la aplicacion dejaria de funcionar


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
Miembro de GUESS



"Victor Koch" <v i c t o r (arroba)correo(punto)waldbott(punto)com(punto)ar>
escribió en el mensaje news:%
Hola Maxi,

Tenes dos opciones:

1.Que tu aplicacion se conecte a la base con un usuario especifico, de
esta
manera acoto las conexiones para ese usuario, (AND logname='xx')

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor') AND logname='xx'

2.Seleccionar unicamente las conexiones de tu aplicacion, (AND
program_name='zzzzzzz')

SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
MASTER..SYSDATABASES WHERE NAME='victor') AND program_name='zzzzzzz'

3.Una combinacion de ambas.

Un saludo, Víctor Koch.


"Maxi [MVP]" escribió en el mensaje
news:#FS$#
Hola, y que sucede si en ese servidor hay otras aplicaciones? ;-)


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
Miembro de GUESS



"Victor Koch" <v i c t o r


(arroba)correo(punto)waldbott(punto)com(punto)ar>
escribió en el mensaje news:
> Hola Francis
>
> Este select te devuelve los datos de cada conexion abierta a una base
> de
> datos en particular
>
> SELECT * FROM MASTER.DBO.SYSPROCESSES WHERE DBID=(SELECT DBID FROM
> MASTER..SYSDATABASES WHERE NAME='victor')
>
> Reemplaza 'victor' por el nombre de tu base de datos.
>
> Un saludo, Víctor Koch.
>
>
> "FrancisF." escribió en el mensaje
> news:
>> Buenas, ¿cómo puedo controlar las conexiones abiertas a una base de


datos
>> concreta? La idea es licenciar una aplicación por este método. Si se
>> os
>> ocurre cómo y me podéis ayudar lo agradecería enormemente.
>> Había pensado en controlar que no hubiera más de x conexiones a la


misma
>> base de datos, o si las hay que sean desde máquinas distintas. Acepto
> muchas
>> ideas, estoy un poco perdido.
>> Gracias.
>
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida