Tengo usuarios que ven un servidor vinculado que no deben ver.
El servidor vinculado está definido para que solo yo tenga acceso a él, pero todos puedan verlo y usarlo.
He creado el nuevo servidor vinculado mediante los siguientes pasos:
- Conecte SSMS Object Explorer a la instancia de SQL Server
- Expandir
Server Objects
, clic derechoLinked Servers
y clic izquierdoNew Linked Server...
- Bajo
General
la pestaña elegirSQL Server
deServer type
y escribir el nombre del servidor - En la
Security
pestaña de la parte superiorAdd
, haga clic en , elija "sa" comoLocal Login
, ingreseRemote User
el nombre yRemote Password
- En la
Security
pestaña de la parte inferior (debajoFor a login not defined in the list above, connections will:
), elija la primera opción:Not be made
- Haga clic
OK
y comience a probar
Ahora la única persona que se supone que ve el servidor vinculado soy yo ("sa"), pero de alguna manera otros usuarios pueden verlo y usarlo.
Nota 1: Los usuarios que pueden usar el servidor vinculado tienen permisos en el servidor remoto, no ven datos que no deberían ver, solo pueden acceder a ellos desde el servidor vinculado cuando no deberían poder hacerlo.
Nota 2: Soy el único sysadmin
en ambas instancias.
sql-server
security
ssms
linked-server
Roi Gavish
fuente
fuente
Respuestas:
No hay forma de "ocultar" un servidor vinculado o evitar que usuarios no autorizados intenten usarlo. Todo lo que puede controlar es si realmente tienen acceso al otro lado. Un servidor vinculado en sí mismo no es un objeto real; como sinónimo, no otorga acceso al alias, solo a las cosas a las que hace referencia.
Pruébelo y verá que algunos de sus supuestos (por ejemplo, "un inicio de sesión ... no puede ver el servidor vinculado en el explorador de objetos") son falsos. Hice esto:
sys.servers
para ver la lista de servidores vinculados.Pude ejecutar la siguiente consulta sin problema:
Sin embargo, no pude ejecutar consultas en bases de datos que no son del sistema, ya que no había otorgado acceso explícito a ninguna base de datos que no sea del sistema ni a los objetos que contiene. P.ej:
Dio este error:
Espero que pueda lograr resultados más restrictivos al negar explícitamente el acceso a objetos específicos en el servidor vinculado (o por
DENY CONNECT SQL
ese inicio de sesión por completo), pero esto no limita su efecto al servidor vinculado; También afecta las conexiones directas.En cualquier caso, no veo el punto de lo que estás tratando de lograr:
fuente
Puede usar la primera opción "No hacerse con" una asignación de inicio de sesión como a continuación:
Aquí está el resultado con el inicio de sesión asignado:
Y esto es lo que sucede con otra cuenta.
fuente