Principales respuestas
MS SQL SERVER 2012 Usuario y permisos

Pregunta
-
Estoy aprendiendo con un servidor MS SQL SERVER 2012 y tengo un usuario SQL que he creado (aprendizSQL) con el que me puedo conectar al servidor.
En el servidor tengo distintas bases de datos y quiero con este usuarios (aprendizSQL) poder acceder únicamente a una base de datos concreta.
Sobre esta base de datos sólo quiero que el usuario (aprendizSQL) pueda realizar consultas; no pueda modificar ni añadir contenido. Que sólo tenga permisos de lectura vamos a decir.
He modificado para este usuario el rol de la base de datos, dejando únicamente:
db_datareader , db_denydatareader y db_denyreader.
El usuario que he creado (aprendizSQL) va ser un usuario que conectará desde una aplicación y es por motivos de seguridad que sólo quiero que pueda conectarse a una base de datos concreta y de la manera de que sólo pueda leer contenido.
He realizado los cambios, pese a que el usuario no me aparece en otras bases de datos, es capaz de conectarse al motor y listar todas las bases existentes. Además, de poder acceder a las bases existentes, puede consultar y modificar con total impunidad.
¿Cómo puedo limitar este usuario (aprendizSQL) para que únicamente pueda realizar consultas y conectarse a una base de datos específica?
Salu2
Respuestas
-
Seguramente ese usuario tiene un rol por encima de sysadmin. Ten en cuenta que en sql tienes permisos en dos niveles, nivel de servidor y nivel de base de datos. lo que has hecho en el nivel de base de datos también esta mal, debes darle db_datareader para que pueda leer, si le das ese permiso y el de denegar.. no se que va a pasar ...
También puede ser que en tu server, hayas dado sysadmin al grupo public, y todo el mundo pertenece a public.
En resumen revisa los permisos a nivel de server.
Comparte lo que sepas, aprende lo que no sepas (FGG)
portalSQL
El rincón del DBA- Marcado como respuesta Galder Ak martes, 17 de octubre de 2017 7:19
Todas las respuestas
-
Seguramente ese usuario tiene un rol por encima de sysadmin. Ten en cuenta que en sql tienes permisos en dos niveles, nivel de servidor y nivel de base de datos. lo que has hecho en el nivel de base de datos también esta mal, debes darle db_datareader para que pueda leer, si le das ese permiso y el de denegar.. no se que va a pasar ...
También puede ser que en tu server, hayas dado sysadmin al grupo public, y todo el mundo pertenece a public.
En resumen revisa los permisos a nivel de server.
Comparte lo que sepas, aprende lo que no sepas (FGG)
portalSQL
El rincón del DBA- Marcado como respuesta Galder Ak martes, 17 de octubre de 2017 7:19
-
Entendido, existen por lo menos permisos en 2 ámbitos (servidor y base de datos). En este caso a nivel servidor prevalece sobre los de la base de datos en concreto.
He modificado los permisos a nivel servidor y todo correcto. (A nivel base de datos es verdad que había una contradicción y no tiene sentido que se pongan permisos para leer y después negarlos).
Ya ha sido solucionado el problema, gracias por la ayuda Miguel.