Limitar la lista de la base de datos a unos con permiso de SQL Server
-
03-07-2019 - |
Pregunta
Por defecto, si se conecta a un servidor SQL remoto a través de una cuenta que tiene acceso a decir 1 de las 10 bases de datos. Aún verás en el Explorador de objetos todas las demás bases de datos, obviamente debido a los permisos no puedes consultarlas, pero puedes ver sus nombres.
He oído que hay un método que deshabilita este comportamiento, pero no he podido encontrar la respuesta. ¿Alguien sabe cómo hacerlo? Para dar un ejemplo, tengo un servidor SQL llamado MyDbServer, tiene 4 bases de datos,
- MyDatabase
- YourDatabse
- PrivateDatabase
- ReallyPrivateDb
Si se conecta a través de una cuenta que solo tiene permisos para " YourDatabse " seguirá viendo una lista de todas las demás bases de datos, los intentos de consulta otorgarán " seleccione " permiso denegado o un error similar.
Para las resons de seguridad, NO queremos que los usuarios vean ninguna base de datos que no sea la que están asignadas.
Solución
Este blog habla sobre los métodos para ocultarse DBs para SQL 2000 y SQL 2005.
Otros consejos
Después de que mi cliente luchara con los recursos identificados, hice algunas pruebas y creé esta publicación de blog con un poco más de contexto e instrucciones sobre cómo hacer que esto funcione.
Lo que falta es:
use master
go
deny VIEW any DATABASE to login1
go
donde inicio de sesión1 es la cuenta de inicio de sesión que desea limitar.