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

#6 Victor Koch
08/11/2005 - 15:10 | Informe spam
Hola Maxi,

No entiendo porque la primera opción no la recomendarias ?.

Estoy deacuerdo con vos, siempre es mejor no depender de "otros" para
algunas cosas, crear una tabla para controlar las conexiones es una buena
idea y no dependemos de nadie, el problema de esto es que debemos estar
seguros de lo que hacemos y contemplar todas las opciones, por ejemplo las
colgadas de la aplicación para no dejar conexiones abiertas.

Un saludo, Víctor Koch.


"Maxi [MVP]" escribió en el mensaje
news:
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
#7 Maxi [MVP]
08/11/2005 - 15:23 | Informe spam
Hola Victor, no es una buena practica usar una sola conexion a la bdd a
menos que hablemos de un Website (y hasta ahi), la recomendacion en
seguridad es usar logins y que cada uno tenga sus permisos como corresponde.

Con respecto al tema en si, a mi no me gusta depender de las tablas de
sistema y por eso sugeri el uso de una tabla externa, el control de las
colgadas y eso es un temita a resolver pero ahi si se podrian aplicar
algunos procesos desde el servidor para esto


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,

No entiendo porque la primera opción no la recomendarias ?.

Estoy deacuerdo con vos, siempre es mejor no depender de "otros" para
algunas cosas, crear una tabla para controlar las conexiones es una buena
idea y no dependemos de nadie, el problema de esto es que debemos estar
seguros de lo que hacemos y contemplar todas las opciones, por ejemplo las
colgadas de la aplicación para no dejar conexiones abiertas.

Un saludo, Víctor Koch.


"Maxi [MVP]" escribió en el mensaje
news:
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.
>> >
>> >
>>
>>
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida