Sobre seguridad a nivel de usuario ¿?

23/11/2004 - 18:56 por Carlos A. Díaz | Informe spam
Hola compañero, quisiera que me ayuden a contruir un camino para una duda.
Hasta el momento en mis sistema con bases de datos mdb creaba una tabla de
usuarios y numeraba los permisos y los guardaba en un memo, para luego
cuando arranque el sistema habilitar opciones si tenia el correspondiente
permiso, ahora con SQL Server estoy implementando la autenticación NT y
tengo la duda de cual seria lo mas conveniente para los permisos, lei
articulos sobre seguridad y sql dinamico en www.helpdna.net y no se di dejar
la administrador del SQL la creación de usuario o hacerlo desde el sistema,
es ese caso dar permisos a usuarios, grupos o definir roles.
Agradeceria alguine me aclare como se implementa estas cuestiones.

Saludos, Carlos

Preguntas similare

Leer las respuestas

#11 Salvador Ramos
24/11/2004 - 10:05 | Informe spam
Por cierto, ya está disponible el Webcast sobre seguridad que impartió Jesús
López en octubre.
Os paso la URL:
http://www.microsoft.com/spain/tech...ts_ant.asp

Muy interesante y didáctico, enhorabuena Jesús !!

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
Es la idea, lo que esperaba en la respuesta era masomenos una guia como la
de Maxi. Espero si puedes aportarme algo mas segun tu experiencia como
desarrollador.

Gracias, Carlos

"Salvador Ramos" escribió en el
mensaje news:
Te aconsejo que lo hagas como indicas, utilizando la arquitectura de
seguridad de SQL Server, y no tablas tuyas.
Conseguiras aumentar la seguridad de tus datos, y tener una gran
flexibilidad a la hora de dar o quitar privilegios.

Y por supuesto, evitarás que alguien acceda a la base de datos desde
fuera de tu aplicación y pueda hacer cualquier tarea para la que no esté
autorizado.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en
el mensaje news:
Hola compañero, quisiera que me ayuden a contruir un camino para una
duda. Hasta el momento en mis sistema con bases de datos mdb creaba una
tabla de usuarios y numeraba los permisos y los guardaba en un memo,
para luego cuando arranque el sistema habilitar opciones si tenia el
correspondiente permiso, ahora con SQL Server estoy implementando la
autenticación NT y tengo la duda de cual seria lo mas conveniente para
los permisos, lei articulos sobre seguridad y sql dinamico en
www.helpdna.net y no se di dejar la administrador del SQL la creación de
usuario o hacerlo desde el sistema, es ese caso dar permisos a usuarios,
grupos o definir roles.
Agradeceria alguine me aclare como se implementa estas cuestiones.

Saludos, Carlos









Respuesta Responder a este mensaje
#12 Maxi
24/11/2004 - 13:11 | Informe spam
Hola, soy de Bs As


Salu2
Maxi


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
[Tucuman].[San Miguel de Tucuman].[dbo].[casa]

y vos?

Saludos

"Maxi" escribió en el mensaje
news:
OK, aca estaremos :)

pd: de que lugar de argentina sos?


Salu2

Maxi


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en
el mensaje news:%
Gracias, lo mastico y cualquier cosa pido me tiren otra soga

:-)

Carlos

"Maxi" escribió en el mensaje
news:%
ok, vamos a responder, entrelineas


Salu2
Maxi


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en
el mensaje news:
Muchas gracias por responder, te ire poniendo mis dudas bajo tu
respuesta:

From: "Maxi"
Newsgroups: microsoft.public.es.sqlserver
Sent: Tuesday, November 23, 2004 3:22 PM
Subject: Re: Sobre seguridad a nivel de usuario ¿?


Carlos, creo que debes dividir las aguas:

Una cosa son los permisos del usuario hacia la BDD y otra muy
distinta los permisos de la aplicacion.

Te cuento mi modelo, quizas puedas aplicar el mismo ;)

1) Dispongo de un inicio de sesion por usuario (aca puedo usar
autentificacion Win o Sql)



Vi que el SQL2000 trae la autentificación SQL desabilitada por
defecto, en
tu caso la hablitas?



Yo uso mixta porque tengo clientes no windows que se podrian conectar
en un futuro.


2) Dispongo en mis sistemas una tabla de usuarios la cual utilizo
para darle permisos a mis modulos



Masomenos como definis esa tabla y que permisos tiene. Yo tambien
dispongo
una tabla de usuarios pero al usar aut. NT no guardo la pwd.




La tabla es muy simple, solo tiene:

Id, Clave, descripcion.

Luego esta tabla la relaciono con la de menus y funcionalidad y ahi
defino los permisos. Si usas .NET y reflexion poder hacer cosas
interesantes :)

3) Implemento el uso de SP para todo.Dentro de mis SP no hay nada de
SQL-Dinamico
4) Tambien implemento Roles de aplicacion, los cuales tienen acceso a
los SP y a las tablas de mi sistema.



Le quitas todos los permisos al usuario y solo le das al sp que
correponda ?
o para algunos le das permisos de lectura a tablas, tengo una grilla
que le
permite al usuario realizar filtros personalidados segun los fields
del
recordset, permitirias esto?



Todos todos!! si usas consultas dinamicas desde el lado del cleinte no
es problema porque siempre uso Roles (justamente por si pasa esto), con
lo cual al ROL le doy todos los permisos y al usuario nada de nada :)

El inicio de sesion realmente no tiene acceso a nada de nada, cuando
se conecta usa el rol y este tiene acceso a los SP.

Con esto me aseguro que los login no puedan acceder por fuera de mi
aplicacion bajo ningun concepto :)



En el caso de intalar un sistema en una empresa, como manejas los sp
de tu
aplicación, los dejas planos o los enciptas para que los admin no
puedan
modificarlos ?



Los encripto, pero eso igual no es problema

Tambien hago otras cosillas como esta:

En la tabla de usuarios guardo una contraseña encriptada
(generalmente uso Md5), el sistema al iniciar tiene una pantalla de
Welcome donde pregunta User_id, Pass.

Ahi tambien hay un tilde que indica si usa autentificacion Windows o
no, si usa Windows, me conecto al motor y luego valido el usuario en
mi sistema, esto me permite tener muchos controles sobre la
aplicacion.



si es masomenos como lo hacia, como guardas los permisos a tu
aplicación, le
das codigo o tenes una tabla de permisos ?



Tengo una tabla de permisos por modulos y aca modulo llama a una clase
llamada Autentificarme, si da ok seguimos sino Excepcion :)

Si la autentificacion es Sql, entonces hago otra cosilla ;) el pass
en lugar de encriptarloc on md5 lo encripto con Hash, por lo cual
para un mismo pass hay 2 datos distintos. Con esto que logro, que no
tiene forma el usuario de logear ya que no es la palabra que pone en
password de la pantalla, y ademas si por algun descuido accede a la
tabla usuarios de mi aplicacion y saca la clave encriptada de ahi,
tampoco le sirve :)

Bue, esto es solo un modelito, no lo tomes al pie del cañon ;)



Salu2
Maxi


"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió
en el mensaje news:
Hola compañero, quisiera que me ayuden a contruir un camino para una
duda. Hasta el momento en mis sistema con bases de datos mdb creaba
una tabla de usuarios y numeraba los permisos y los guardaba en un
memo, para luego cuando arranque el sistema habilitar opciones si
tenia el correspondiente permiso, ahora con SQL Server estoy
implementando la autenticación NT y tengo la duda de cual seria lo
mas conveniente para los permisos, lei articulos sobre seguridad y
sql dinamico en www.helpdna.net y no se di dejar la administrador
del SQL la creación de usuario o hacerlo desde el sistema, es ese
caso dar permisos a usuarios, grupos o definir roles.
Agradeceria alguine me aclare como se implementa estas cuestiones.

Saludos, Carlos





















Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.795 / Virus Database: 539 - Release Date: 12/11/2004





Respuesta Responder a este mensaje
#13 Javier Loria
24/11/2004 - 15:07 | Informe spam
Hola:
En la parte de Autorizacion, si usas .NET (VB o C#) puedes revisar el
Bloque de Autorizacion y Profile de Microsoft. Este es codigo escritop por
Microsoft como guia para aplicaciones corporativas.
Puedes encontrarlo en:
http://www.microsoft.com/downloads/...laylang=en

No te inmagines un producto terminado, es codigo que sirve de base que
agregues tus Tablas y Procedimientos y extiendas la funcionalidad que
provee.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> wrote in message
news:uE#
La verdad que 100 años deberia ser pero apenas son maximo 20 años del DOS,
la verdad que la historia de la informatica es nada comparada con la
historia de la vida, ni siquiera esta en pañales !!!.
Pero obviamente coincido con vos, no me pondre a reinventar la rueda,
obviamente voy por la autenticación NT, porque incluso veo que la aut. SQL
viene desabilitada por defecto, osea ¡autent. NT es lo que quieren, Ok!.
Como le respondi a Salvador, espero tu esperiencia respecto al tema de los
permisos.

Saludos, Carlos

PD: Que tal Costa Rica?

"Javier Loria" escribió en el mensaje
news:
> Hola:
> Mi opinion:
> Hace como 100 anos, escribia programas de DOS que tenia sus propios
> "drivers" de impresion, en ellos controlaba el tamano de la letra, si


usa
> italicos, etc. Cuando vino Windows 3.1/3.11 esto era un "Servicio" que
> brindaba el Sistema Operativo, de manera tal que ya no interactuaba con


la
> impresora sino unicamente con el Windows. Podria haber seguido manejando
> mis
> propios codigos para manipular la impresora, pero la verdad mis


programas
> eran mas compatibles, faciles de hacer y mas actualizables porque uso


los
> servicios de Windows..
> Con la seguridad creo que pasa igual, ahora la seguridad es algo que
> puedes hacer o puedes usar los servicios de autenticacion del Windows, o
> sea
> que el que valide si un usuario es valido o no, sea el Windows. Si


decides
> hacerlo en tu aplicacion debes tomar en cuenta que el mundo de internet


y
> la
> seguridad han cambiado muchisimo en los ultimos 5 anos. Debes definir


por
> lo
> menos, largos de claves, frecuencia de cambios, complejidad de claves,
> bloqueo de cuentas, y todo esto parametrizable. El tipico usuario/clave
> grabado en una tabla no es suficiente, e incluso es peor que no tener
> seguridad!!!, ya que al comprometer la clave de los usuarios, estas
> probablmente comprometiendo la seguridad de sus propietarios (Pin de
> Cajero
> Automatico, cuentas de aplicaciones, cuentas en sitios Web, etc.)
> En mi caso yo prefiero descansar la autenticacion en el Windows, que


me
> ofrece todo esto con muy poco codigo y en un ambiente seguro.
> Saludos,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda
>
> "Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> wrote in
> message
> news:
>> Hola compañero, quisiera que me ayuden a contruir un camino para una
>> duda.
>> Hasta el momento en mis sistema con bases de datos mdb creaba una tabla
>> de
>> usuarios y numeraba los permisos y los guardaba en un memo, para luego
>> cuando arranque el sistema habilitar opciones si tenia el


correspondiente
>> permiso, ahora con SQL Server estoy implementando la autenticación NT y
>> tengo la duda de cual seria lo mas conveniente para los permisos, lei
>> articulos sobre seguridad y sql dinamico en www.helpdna.net y no se di
> dejar
>> la administrador del SQL la creación de usuario o hacerlo desde el
> sistema,
>> es ese caso dar permisos a usuarios, grupos o definir roles.
>> Agradeceria alguine me aclare como se implementa estas cuestiones.
>>
>> Saludos, Carlos
>>
>>
>
>


Respuesta Responder a este mensaje
#14 Carlos A. Díaz
24/11/2004 - 17:49 | Informe spam
Muy bueno, lastima la explosion o crash, bum, bang !!!

Carlos

"Salvador Ramos" escribió en el
mensaje news:
Por cierto, ya está disponible el Webcast sobre seguridad que impartió
Jesús López en octubre.
Os paso la URL:
http://www.microsoft.com/spain/tech...ts_ant.asp

Muy interesante y didáctico, enhorabuena Jesús !!

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en el
mensaje news:
Es la idea, lo que esperaba en la respuesta era masomenos una guia como
la de Maxi. Espero si puedes aportarme algo mas segun tu experiencia como
desarrollador.

Gracias, Carlos

"Salvador Ramos" escribió en el
mensaje news:
Te aconsejo que lo hagas como indicas, utilizando la arquitectura de
seguridad de SQL Server, y no tablas tuyas.
Conseguiras aumentar la seguridad de tus datos, y tener una gran
flexibilidad a la hora de dar o quitar privilegios.

Y por supuesto, evitarás que alguien acceda a la base de datos desde
fuera de tu aplicación y pueda hacer cualquier tarea para la que no esté
autorizado.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> escribió en
el mensaje news:
Hola compañero, quisiera que me ayuden a contruir un camino para una
duda. Hasta el momento en mis sistema con bases de datos mdb creaba una
tabla de usuarios y numeraba los permisos y los guardaba en un memo,
para luego cuando arranque el sistema habilitar opciones si tenia el
correspondiente permiso, ahora con SQL Server estoy implementando la
autenticación NT y tengo la duda de cual seria lo mas conveniente para
los permisos, lei articulos sobre seguridad y sql dinamico en
www.helpdna.net y no se di dejar la administrador del SQL la creación
de usuario o hacerlo desde el sistema, es ese caso dar permisos a
usuarios, grupos o definir roles.
Agradeceria alguine me aclare como se implementa estas cuestiones.

Saludos, Carlos













Respuesta Responder a este mensaje
#15 Carlos A. Díaz
24/11/2004 - 19:10 | Informe spam
Gracias Javier pero todavia estoy con vb6, existe algo parecido para ese
lenguaje ?

Saludos

"Javier Loria" escribió en el mensaje
news:
Hola:
En la parte de Autorizacion, si usas .NET (VB o C#) puedes revisar el
Bloque de Autorizacion y Profile de Microsoft. Este es codigo escritop por
Microsoft como guia para aplicaciones corporativas.
Puedes encontrarlo en:
http://www.microsoft.com/downloads/...laylang=en

No te inmagines un producto terminado, es codigo que sirve de base que
agregues tus Tablas y Procedimientos y extiendas la funcionalidad que
provee.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> wrote in
message
news:uE#
La verdad que 100 años deberia ser pero apenas son maximo 20 años del
DOS,
la verdad que la historia de la informatica es nada comparada con la
historia de la vida, ni siquiera esta en pañales !!!.
Pero obviamente coincido con vos, no me pondre a reinventar la rueda,
obviamente voy por la autenticación NT, porque incluso veo que la aut.
SQL
viene desabilitada por defecto, osea ¡autent. NT es lo que quieren, Ok!.
Como le respondi a Salvador, espero tu esperiencia respecto al tema de
los
permisos.

Saludos, Carlos

PD: Que tal Costa Rica?

"Javier Loria" escribió en el mensaje
news:
> Hola:
> Mi opinion:
> Hace como 100 anos, escribia programas de DOS que tenia sus propios
> "drivers" de impresion, en ellos controlaba el tamano de la letra, si


usa
> italicos, etc. Cuando vino Windows 3.1/3.11 esto era un "Servicio" que
> brindaba el Sistema Operativo, de manera tal que ya no interactuaba con


la
> impresora sino unicamente con el Windows. Podria haber seguido
> manejando
> mis
> propios codigos para manipular la impresora, pero la verdad mis


programas
> eran mas compatibles, faciles de hacer y mas actualizables porque uso


los
> servicios de Windows..
> Con la seguridad creo que pasa igual, ahora la seguridad es algo que
> puedes hacer o puedes usar los servicios de autenticacion del Windows,
> o
> sea
> que el que valide si un usuario es valido o no, sea el Windows. Si


decides
> hacerlo en tu aplicacion debes tomar en cuenta que el mundo de internet


y
> la
> seguridad han cambiado muchisimo en los ultimos 5 anos. Debes definir


por
> lo
> menos, largos de claves, frecuencia de cambios, complejidad de claves,
> bloqueo de cuentas, y todo esto parametrizable. El tipico usuario/clave
> grabado en una tabla no es suficiente, e incluso es peor que no tener
> seguridad!!!, ya que al comprometer la clave de los usuarios, estas
> probablmente comprometiendo la seguridad de sus propietarios (Pin de
> Cajero
> Automatico, cuentas de aplicaciones, cuentas en sitios Web, etc.)
> En mi caso yo prefiero descansar la autenticacion en el Windows, que


me
> ofrece todo esto con muy poco codigo y en un ambiente seguro.
> Saludos,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda
>
> "Carlos A. Díaz" <carlosadiaz[nos pa m]@uolsinectis.com.ar> wrote in
> message
> news:
>> Hola compañero, quisiera que me ayuden a contruir un camino para una
>> duda.
>> Hasta el momento en mis sistema con bases de datos mdb creaba una
>> tabla
>> de
>> usuarios y numeraba los permisos y los guardaba en un memo, para luego
>> cuando arranque el sistema habilitar opciones si tenia el


correspondiente
>> permiso, ahora con SQL Server estoy implementando la autenticación NT
>> y
>> tengo la duda de cual seria lo mas conveniente para los permisos, lei
>> articulos sobre seguridad y sql dinamico en www.helpdna.net y no se di
> dejar
>> la administrador del SQL la creación de usuario o hacerlo desde el
> sistema,
>> es ese caso dar permisos a usuarios, grupos o definir roles.
>> Agradeceria alguine me aclare como se implementa estas cuestiones.
>>
>> Saludos, Carlos
>>
>>
>
>






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