Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Seguridad en Acceso en Sql-Server

Estas en el tema de Seguridad en Acceso en Sql-Server en el foro de SQL Server en Foros del Web. Esta pregunta esta orientada a como tener un acceso seguro en Sql-Server Tengo un Servidor en el cual existe una BD con estructuras que utilizo ...
  #1 (permalink)  
Antiguo 19/11/2005, 10:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
Seguridad en Acceso en Sql-Server

Esta pregunta esta orientada a como tener un acceso seguro en Sql-Server

Tengo un Servidor en el cual existe una BD con estructuras que utilizo en varios sistemas.

Para que mis usuarios tengan acceso a la BD de mi servidor les e creado un login el cual cual no tengo
ningun problemas ya que la encriptación de SQL-Sever me controla el acceso.

Bueno, pero cual es mi problema.

Resulta que del 100% de mis usuarios el 90% son
usuarios que no saben nada de SQL de echo solo se enfocan a utilizar el sistema.

Pero el 10% restanta son Lic. en Informatica o Ing. en Sistemas y esos si conoces como funciona SQL-Server.

El problema consiste en que en ocaciones requieren reportes que actualmente estan en desarrollo y tienen como salida indevida el instalar Query Analyercon el objetivo de conectarce al servidor y realizar las consultas que ellos requieren.

Si se dan cuenta Tengo un problema en Seguridad el cual me gustaria saber si me pueden orientar, posiblemente no sea en la respuesta pero si en una orientación

Atte
-----------------------------------
Gabriel Sanchez
México
[email protected]
  #2 (permalink)  
Antiguo 19/11/2005, 16:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Para controlar accesos indebidos vas a tener que construir un programita o ejecutar scripts de sql que realicen las siguientes tareas :
1.- Usando sa te conectas y haces un select que extraiga el numero de proceso (spid) a la tabla sysprocesses (es la tabla en donde estan los procesos que se estan ejecutando en el servidor); seleccionando todos aquellos en donde por ejemplo en las columnas program_name contengan 'Analizador de Consultas..', o 'OSQL-32', o 'MS_QUERY' o 'RapidSQL' o cualquier otro programa que puedan accesar usando su login;
o bien , si conoces cuales son los nombres de maquina de los informaticos puedes consultar tambien la columna hostname..... despues que consigues estos spid comienzas a dar comandos kill xxxxx ; donde xxxxx es cada spid con acceso indebido.... con esto logras que el sistema los vaya matando cada vez que ingresen por la puerta del lado.... ahora si tu tienes que autorizarlo por alguna tarea especifica puedes modificar el select indicando que pueda trabajar el hostname xxxxxxx....
Ahora la forma de que hagas funcionar esto es dejar corriendo una tarea programada por el tiempo que tu indiques y ademas, la programas para que se ejecute cada 5 minutos por ejemplo.... no es pesado este proceso y no carga el servidor..

Espero hayas entendido como hacerlo
  #3 (permalink)  
Antiguo 21/11/2005, 09:51
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
Creo que tu idea es muy buena.

Seria un Centinela que me este cuidando todas esas conecciones
indevidas, puede ser una muy buena opción.

Como solo deseo que se conecten mediante este medio el SA
puedo agregarle al centinela que si es una conección Query Analyer
que este activa valide que sea solamente el SA el que la utilice.

Gracias monkyta


P.D. Aunque el riesgo es minimo ya que en el tiempo en que no corra
la tarea estos pueden cometer una catastrofe.
  #4 (permalink)  
Antiguo 21/11/2005, 10:12
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Esto me ha funcionado por años; ya que no solo he usado este metodo en Sql Server; sino tambien en otros motores y me ha dado muy buenos resultados.
Eso si que siempre hay excepciones que debes controlar ya que no falta el que se consigue autorizacion y debes permitir su acceso... pero igual esta controlado el asunto.
Además, otra opcion de seguridad que sirve, y es la de no dar la password del dbo de Bases de Datos en produccion a nadie; solo entregas login con grant de select a los objetos de las tablas o vistas.... esto es lo principal..... y esto tambien lo controlo por el agente que monitorea los procesos. La otra cosa que puedes controlar tambien es el uso de recursos o tiempo... si se exceden procedes a matar la tarea.... todo eso
  #5 (permalink)  
Antiguo 21/11/2005, 15:23
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Revisa los Application Roles, es probable que te sean de ayuda.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #6 (permalink)  
Antiguo 22/11/2005, 17:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
Esta interesante Mithrandir tu propuesta
referente al uso de Application Roles

Estoy checando el asunto y entiendo que puedo definir que
ciertas aplicaciones tengan acceso a SQL-Server, aun no entiendo
bien como funciona.

Pero en la Ayuda menciona que puedo bloquear la Aplicación
Query Analyer o la del Excel para que no se conecten mediante
ese medio.

P.d. Si ya tienes la situción definida nos puedes explicar como
seria, te lo agradeseria mucho, claro si no le echare ganas
y ya que lo logre les explicare como funciona.
  #7 (permalink)  
Antiguo 22/11/2005, 18:08
 
Fecha de Ingreso: septiembre-2005
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
De nuevo aqui Mithrandir

Ya realice las pruebas y creo que esta bastante bien, claro que son pruebas
iniciales y a cada uno de nosotros nos queda el hacer pruebas y sacar lo negativo de esto y claro sus posibles soluciones

sp_addlogin 'LoginEjemplo','prueba'
-- Generamos el usuario LoginEjemplo con Clave Prueba
GO
sp_adduser 'LoginEjemplo' -- Le damos Acceso al Usuario a la Base Nom_BD
GO
sp_addrolemember 'db_denydatawriter','LoginEjemplo'
-- le quitamos los derechos de escritura
go
sp_addrolemember 'db_denydatareader','LoginEjemplo'
-- le quitamos los derechos de lecturas
EXEC sp_addapprole 'mifuncion_app', '12345'
-- Creamos el Rol
/***/
si se conectan con el login al servidor
y tratan de dar un select auna tabla

select * from articulos(nolock)

SQL negara el acceso

pero si habilitan el Ron ya podran

EXEC sp_setapprole 'mifuncion_app', {Encrypt N '12345'}, 'odbc'
select * from articulos(nolock)
/***/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:39.