Seguridad en SQL

05/07/2007 - 20:24 por Antonio Belmonte | Informe spam
Tenemos unos programas hechos en VB6 contra Access y los estamos migrando a
SQL server 2005 Express (como entorno de pruebas, el año que viene creo que
el jefe nos concederá sql 2005 para 20 usuarios). El entorno es Windows
2003 server con Active Directory. Hay 100 usuarios, aunque apenas hay 50
transacciones diarias y nunca trabajan más de 10 usuarios simultáneos (las
bases de datos, con los históricos de 10 años, no llegan a los 100Mb)
De momento, la migración de bases de datos y el acceso desde el programa
está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
organizar la seguridad de accesos.
Me gustaría que a las bases de datos sólo pudieran acceder los programas y
el administrador del sistema (con el SQL Manager), pues los programas,
dependiendo del usuario, ya mapean qué tablas, campos o porciones de
registros puede ver o modificar cada uno (hay programas bastante complejos,
con 11 perfiles de usuario, cada uno de los cuales accede a tablas o campos
específicos).
Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña en
las cadenas de conexión ADO del programa. Pero en el manual, Microsoft
desaconseja el uso de la autenticación mixta, recomendando sólo el uso del
modo de autenticación de Windows.
Hay un posible problema añadido: el año que viene, en nuestra corporación,
todas las contraseñas (incluidas las de administrador) van a caducar cada 45
días. Si utilizo la autenticación de windows igual tengo problemas para
acceder a las bases de datos desde los programas.
La verdad es que estoy hecho un lío con las políticas de usuario de SQL
Server 2005.
¿Me pueden orientar un poco?
Muchas gracias.

Una cosa más: el jefe comenta que si para el escaso movimiento de la base de
datos (hay días en que se insertan apenas 20 registros), tenemos suficiente
con la versión gratuita (express). ¿Qué opinan?

Preguntas similare

Leer las respuestas

#1 Isaias
05/07/2007 - 20:52 | Informe spam
Deberias documentarte sobre la version SQL SERVER 2005 EXPRESS EDITION WITH
ADVANCED SERVICES.

Suena que el motor de la base de datos puede soportar el numero de
transacciones por ahora y el tamaño que ocupara, pero insisto, lee sobre
dicha version.

En cuanto a la seguridad, 100% recomendable que sea por WINDOWS, que sea el
ACTIVE DIRECTORY que valide las cuentas, si el password caduca cada "x"
tiempo, este sera validado por el entorno OS y no por el motor.

Para saber mas de SQL Server 2005 Express:

http://www.microsoft.com/sql/editio...fault.mspx

Saludos
IIslas


"Antonio Belmonte" wrote:

Tenemos unos programas hechos en VB6 contra Access y los estamos migrando a
SQL server 2005 Express (como entorno de pruebas, el año que viene creo que
el jefe nos concederá sql 2005 para 20 usuarios). El entorno es Windows
2003 server con Active Directory. Hay 100 usuarios, aunque apenas hay 50
transacciones diarias y nunca trabajan más de 10 usuarios simultáneos (las
bases de datos, con los históricos de 10 años, no llegan a los 100Mb)
De momento, la migración de bases de datos y el acceso desde el programa
está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
organizar la seguridad de accesos.
Me gustaría que a las bases de datos sólo pudieran acceder los programas y
el administrador del sistema (con el SQL Manager), pues los programas,
dependiendo del usuario, ya mapean qué tablas, campos o porciones de
registros puede ver o modificar cada uno (hay programas bastante complejos,
con 11 perfiles de usuario, cada uno de los cuales accede a tablas o campos
específicos).
Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña en
las cadenas de conexión ADO del programa. Pero en el manual, Microsoft
desaconseja el uso de la autenticación mixta, recomendando sólo el uso del
modo de autenticación de Windows.
Hay un posible problema añadido: el año que viene, en nuestra corporación,
todas las contraseñas (incluidas las de administrador) van a caducar cada 45
días. Si utilizo la autenticación de windows igual tengo problemas para
acceder a las bases de datos desde los programas.
La verdad es que estoy hecho un lío con las políticas de usuario de SQL
Server 2005.
¿Me pueden orientar un poco?
Muchas gracias.

Una cosa más: el jefe comenta que si para el escaso movimiento de la base de
datos (hay días en que se insertan apenas 20 registros), tenemos suficiente
con la versión gratuita (express). ¿Qué opinan?




Respuesta Responder a este mensaje
#2 Carlos Sacristan
05/07/2007 - 20:59 | Informe spam
Por partes:

con SQL Server 2005 Express no vas a tener problemas con ese número de
transacciones por segundo ni por el tamaño de las bases de datos. Si el día
de mañana se os queda pequeña, siempre podréis actualizar más fácilmente
simplemente comprando una versión superior y ampliando el hardware.

Lo que has conseguido con autentificación mixta lo puedes hacer con
autentificación Windows, y más fácilmente; tienes más ventajas (con esta
segunda opción) porque tienes la seguridad centralizada y no tienes que
crear usuarios de SQL específicos. El hecho de que caduquen las contraseñas
no es un problema, ya que si el usuario accede a la red, podrá acceder a las
bases de datos (recuerda, la seguridad está centralizada).

Lo que no debes hacer es acceder con el usuario sa, pues éste tiene
todos los permisos, no sólo sobre ciertas bases de datos o tablas, sino
sobre el propio servidor. Yo en tu lugar crearía roles que les asignaría los
permisos específicos que quieras, y posteriormente asignárselo a los
usuarios, independientemente de que las aplicaciones accedan a las tablas
que quieras.


"Antonio Belmonte" escribió en el mensaje
news:%23SwI%
Tenemos unos programas hechos en VB6 contra Access y los estamos migrando
a SQL server 2005 Express (como entorno de pruebas, el año que viene creo
que el jefe nos concederá sql 2005 para 20 usuarios). El entorno es
Windows 2003 server con Active Directory. Hay 100 usuarios, aunque apenas
hay 50 transacciones diarias y nunca trabajan más de 10 usuarios
simultáneos (las bases de datos, con los históricos de 10 años, no llegan
a los 100Mb)
De momento, la migración de bases de datos y el acceso desde el programa
está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
organizar la seguridad de accesos.
Me gustaría que a las bases de datos sólo pudieran acceder los programas y
el administrador del sistema (con el SQL Manager), pues los programas,
dependiendo del usuario, ya mapean qué tablas, campos o porciones de
registros puede ver o modificar cada uno (hay programas bastante
complejos, con 11 perfiles de usuario, cada uno de los cuales accede a
tablas o campos específicos).
Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña en
las cadenas de conexión ADO del programa. Pero en el manual, Microsoft
desaconseja el uso de la autenticación mixta, recomendando sólo el uso del
modo de autenticación de Windows.
Hay un posible problema añadido: el año que viene, en nuestra corporación,
todas las contraseñas (incluidas las de administrador) van a caducar cada
45 días. Si utilizo la autenticación de windows igual tengo problemas para
acceder a las bases de datos desde los programas.
La verdad es que estoy hecho un lío con las políticas de usuario de SQL
Server 2005.
¿Me pueden orientar un poco?
Muchas gracias.

Una cosa más: el jefe comenta que si para el escaso movimiento de la base
de datos (hay días en que se insertan apenas 20 registros), tenemos
suficiente con la versión gratuita (express). ¿Qué opinan?


Respuesta Responder a este mensaje
#3 Florencio Cebrian
06/07/2007 - 01:29 | Informe spam
Gracias por responder.

Supongamos que pongo autentificación windows, y desde su terminal entra el

usuario Pepe. Pepe arranca el programa y me gustaría que dicho programa

tuviera derechos de administrador sobre toda la base de datos. Pero lo que

no quiero es que Pepe pueda entrar a la base de datos desde una herramienta

como SQL Server 2005 Management Studio Express que él pueda instalar en su

máquina. Vamos, quiero que, en el caso de usuarios no administradores, sólo

el programa "vea" la base de datos.

¿Cómo lo hago? (Perdón, pero vengo de un entorno Access en el que se

protegía el fichero .mdb con contraseña y poco más)

"Carlos Sacristan" <nomail> escribió en el mensaje
news:%
Por partes:

con SQL Server 2005 Express no vas a tener problemas con ese número de
transacciones por segundo ni por el tamaño de las bases de datos. Si el
día de mañana se os queda pequeña, siempre podréis actualizar más
fácilmente simplemente comprando una versión superior y ampliando el
hardware.

Lo que has conseguido con autentificación mixta lo puedes hacer con
autentificación Windows, y más fácilmente; tienes más ventajas (con esta
segunda opción) porque tienes la seguridad centralizada y no tienes que
crear usuarios de SQL específicos. El hecho de que caduquen las
contraseñas no es un problema, ya que si el usuario accede a la red, podrá
acceder a las bases de datos (recuerda, la seguridad está centralizada).

Lo que no debes hacer es acceder con el usuario sa, pues éste tiene
todos los permisos, no sólo sobre ciertas bases de datos o tablas, sino
sobre el propio servidor. Yo en tu lugar crearía roles que les asignaría
los permisos específicos que quieras, y posteriormente asignárselo a los
usuarios, independientemente de que las aplicaciones accedan a las tablas
que quieras.


"Antonio Belmonte" escribió en el mensaje
news:%23SwI%
Tenemos unos programas hechos en VB6 contra Access y los estamos migrando
a SQL server 2005 Express (como entorno de pruebas, el año que viene creo
que el jefe nos concederá sql 2005 para 20 usuarios). El entorno es
Windows 2003 server con Active Directory. Hay 100 usuarios, aunque apenas
hay 50 transacciones diarias y nunca trabajan más de 10 usuarios
simultáneos (las bases de datos, con los históricos de 10 años, no llegan
a los 100Mb)
De momento, la migración de bases de datos y el acceso desde el programa
está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
organizar la seguridad de accesos.
Me gustaría que a las bases de datos sólo pudieran acceder los programas
y el administrador del sistema (con el SQL Manager), pues los programas,
dependiendo del usuario, ya mapean qué tablas, campos o porciones de
registros puede ver o modificar cada uno (hay programas bastante
complejos, con 11 perfiles de usuario, cada uno de los cuales accede a
tablas o campos específicos).
Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña
en las cadenas de conexión ADO del programa. Pero en el manual, Microsoft
desaconseja el uso de la autenticación mixta, recomendando sólo el uso
del modo de autenticación de Windows.
Hay un posible problema añadido: el año que viene, en nuestra
corporación, todas las contraseñas (incluidas las de administrador) van a
caducar cada 45 días. Si utilizo la autenticación de windows igual tengo
problemas para acceder a las bases de datos desde los programas.
La verdad es que estoy hecho un lío con las políticas de usuario de SQL
Server 2005.
¿Me pueden orientar un poco?
Muchas gracias.

Una cosa más: el jefe comenta que si para el escaso movimiento de la base
de datos (hay días en que se insertan apenas 20 registros), tenemos
suficiente con la versión gratuita (express). ¿Qué opinan?







Respuesta Responder a este mensaje
#4 Isaias
06/07/2007 - 03:04 | Informe spam
Pues no se si sea el caso, pero deberias ver si las FUNCIONES POR APLICACION
te sirve, lee un poco en tu ayuda en linea.

Como ejemplo de uso de una función de aplicación, supongamos que la usuaria
Sue ejecuta una aplicación de ventas que necesita los permisos SELECT, UPDATE
e INSERT en las tablas Products y Orders de la base de datos Sales, pero no
debe tener los permisos SELECT, INSERT ni UPDATE cuando realice el acceso a
las tablas Products o Orders con el Analizador de consultas SQL, o con
cualquier otra herramienta. Para cumplir estas condiciones, cree una función
de base de datos que deniegue los permisos SELECT, INSERT y UPDATE para las
tablas Products y Orders, y agregarle Sue como miembro. A continuación, cree
una función de aplicación en la base de datos Sales con los permisos SELECT,
INSERT y UPDATE para las tablas Products y Orders. Cuando se ejecute, la
aplicación especificará la contraseña para activar la función de aplicación
con sp_setapprole, y obtendrá los permisos de acceso a las tablas Products y
Orders. Si Sue intenta iniciar una sesión en una instancia de SQL Server con
cualquier otra herramienta, no tendrá acceso a la tabla Products ni a Orders.

Saludos
IIslas


"Florencio Cebrian" wrote:

Gracias por responder.

Supongamos que pongo autentificación windows, y desde su terminal entra el

usuario Pepe. Pepe arranca el programa y me gustaría que dicho programa

tuviera derechos de administrador sobre toda la base de datos. Pero lo que

no quiero es que Pepe pueda entrar a la base de datos desde una herramienta

como SQL Server 2005 Management Studio Express que él pueda instalar en su

máquina. Vamos, quiero que, en el caso de usuarios no administradores, sólo

el programa "vea" la base de datos.

¿Cómo lo hago? (Perdón, pero vengo de un entorno Access en el que se

protegía el fichero .mdb con contraseña y poco más)

"Carlos Sacristan" <nomail> escribió en el mensaje
news:%
> Por partes:
>
> con SQL Server 2005 Express no vas a tener problemas con ese número de
> transacciones por segundo ni por el tamaño de las bases de datos. Si el
> día de mañana se os queda pequeña, siempre podréis actualizar más
> fácilmente simplemente comprando una versión superior y ampliando el
> hardware.
>
> Lo que has conseguido con autentificación mixta lo puedes hacer con
> autentificación Windows, y más fácilmente; tienes más ventajas (con esta
> segunda opción) porque tienes la seguridad centralizada y no tienes que
> crear usuarios de SQL específicos. El hecho de que caduquen las
> contraseñas no es un problema, ya que si el usuario accede a la red, podrá
> acceder a las bases de datos (recuerda, la seguridad está centralizada).
>
> Lo que no debes hacer es acceder con el usuario sa, pues éste tiene
> todos los permisos, no sólo sobre ciertas bases de datos o tablas, sino
> sobre el propio servidor. Yo en tu lugar crearía roles que les asignaría
> los permisos específicos que quieras, y posteriormente asignárselo a los
> usuarios, independientemente de que las aplicaciones accedan a las tablas
> que quieras.
>
>
> "Antonio Belmonte" escribió en el mensaje
> news:%23SwI%
>> Tenemos unos programas hechos en VB6 contra Access y los estamos migrando
>> a SQL server 2005 Express (como entorno de pruebas, el año que viene creo
>> que el jefe nos concederá sql 2005 para 20 usuarios). El entorno es
>> Windows 2003 server con Active Directory. Hay 100 usuarios, aunque apenas
>> hay 50 transacciones diarias y nunca trabajan más de 10 usuarios
>> simultáneos (las bases de datos, con los históricos de 10 años, no llegan
>> a los 100Mb)
>> De momento, la migración de bases de datos y el acceso desde el programa
>> está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
>> organizar la seguridad de accesos.
>> Me gustaría que a las bases de datos sólo pudieran acceder los programas
>> y el administrador del sistema (con el SQL Manager), pues los programas,
>> dependiendo del usuario, ya mapean qué tablas, campos o porciones de
>> registros puede ver o modificar cada uno (hay programas bastante
>> complejos, con 11 perfiles de usuario, cada uno de los cuales accede a
>> tablas o campos específicos).
>> Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
>> poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña
>> en las cadenas de conexión ADO del programa. Pero en el manual, Microsoft
>> desaconseja el uso de la autenticación mixta, recomendando sólo el uso
>> del modo de autenticación de Windows.
>> Hay un posible problema añadido: el año que viene, en nuestra
>> corporación, todas las contraseñas (incluidas las de administrador) van a
>> caducar cada 45 días. Si utilizo la autenticación de windows igual tengo
>> problemas para acceder a las bases de datos desde los programas.
>> La verdad es que estoy hecho un lío con las políticas de usuario de SQL
>> Server 2005.
>> ¿Me pueden orientar un poco?
>> Muchas gracias.
>>
>> Una cosa más: el jefe comenta que si para el escaso movimiento de la base
>> de datos (hay días en que se insertan apenas 20 registros), tenemos
>> suficiente con la versión gratuita (express). ¿Qué opinan?
>>
>>
>
>
>




Respuesta Responder a este mensaje
#5 Maxi
06/07/2007 - 15:07 | Informe spam
Hola, y porque a Pepe le vas a poner derechos administrativos sobre toda la
base de datos? cual es el sentido de hacer esto?


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Florencio Cebrian" escribió en el mensaje
news:%
Gracias por responder.

Supongamos que pongo autentificación windows, y desde su terminal entra el

usuario Pepe. Pepe arranca el programa y me gustaría que dicho programa

tuviera derechos de administrador sobre toda la base de datos. Pero lo que

no quiero es que Pepe pueda entrar a la base de datos desde una
herramienta

como SQL Server 2005 Management Studio Express que él pueda instalar en su

máquina. Vamos, quiero que, en el caso de usuarios no administradores,
sólo

el programa "vea" la base de datos.

¿Cómo lo hago? (Perdón, pero vengo de un entorno Access en el que se

protegía el fichero .mdb con contraseña y poco más)

"Carlos Sacristan" <nomail> escribió en el mensaje
news:%
Por partes:

con SQL Server 2005 Express no vas a tener problemas con ese número de
transacciones por segundo ni por el tamaño de las bases de datos. Si el
día de mañana se os queda pequeña, siempre podréis actualizar más
fácilmente simplemente comprando una versión superior y ampliando el
hardware.

Lo que has conseguido con autentificación mixta lo puedes hacer con
autentificación Windows, y más fácilmente; tienes más ventajas (con esta
segunda opción) porque tienes la seguridad centralizada y no tienes que
crear usuarios de SQL específicos. El hecho de que caduquen las
contraseñas no es un problema, ya que si el usuario accede a la red,
podrá acceder a las bases de datos (recuerda, la seguridad está
centralizada).

Lo que no debes hacer es acceder con el usuario sa, pues éste tiene
todos los permisos, no sólo sobre ciertas bases de datos o tablas, sino
sobre el propio servidor. Yo en tu lugar crearía roles que les asignaría
los permisos específicos que quieras, y posteriormente asignárselo a los
usuarios, independientemente de que las aplicaciones accedan a las tablas
que quieras.


"Antonio Belmonte" escribió en el mensaje
news:%23SwI%
Tenemos unos programas hechos en VB6 contra Access y los estamos
migrando a SQL server 2005 Express (como entorno de pruebas, el año que
viene creo que el jefe nos concederá sql 2005 para 20 usuarios). El
entorno es Windows 2003 server con Active Directory. Hay 100 usuarios,
aunque apenas hay 50 transacciones diarias y nunca trabajan más de 10
usuarios simultáneos (las bases de datos, con los históricos de 10 años,
no llegan a los 100Mb)
De momento, la migración de bases de datos y el acceso desde el programa
está resuelto y funciona bien, pero tengo muchas dudas respecto a cómo
organizar la seguridad de accesos.
Me gustaría que a las bases de datos sólo pudieran acceder los programas
y el administrador del sistema (con el SQL Manager), pues los programas,
dependiendo del usuario, ya mapean qué tablas, campos o porciones de
registros puede ver o modificar cada uno (hay programas bastante
complejos, con 11 perfiles de usuario, cada uno de los cuales accede a
tablas o campos específicos).
Lo he conseguido poniendo en SQL server el modo de autenticación Mixto,
poniendo contraseña al usuario sa, y pasando dicho usuario y contraseña
en las cadenas de conexión ADO del programa. Pero en el manual,
Microsoft desaconseja el uso de la autenticación mixta, recomendando
sólo el uso del modo de autenticación de Windows.
Hay un posible problema añadido: el año que viene, en nuestra
corporación, todas las contraseñas (incluidas las de administrador) van
a caducar cada 45 días. Si utilizo la autenticación de windows igual
tengo problemas para acceder a las bases de datos desde los programas.
La verdad es que estoy hecho un lío con las políticas de usuario de SQL
Server 2005.
¿Me pueden orientar un poco?
Muchas gracias.

Una cosa más: el jefe comenta que si para el escaso movimiento de la
base de datos (hay días en que se insertan apenas 20 registros), tenemos
suficiente con la versión gratuita (express). ¿Qué opinan?












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