Eu tenho usuários vendo um servidor vinculado que eles não deveriam ver.
O servidor vinculado é definido para que somente eu tenha acesso a ele, mas todos possam vê-lo e usá-lo.
Eu criei o novo servidor vinculado usando as seguintes etapas:
- Conecte o SSMS Object Explorer à instância do SQL Server
- Expanda
Server Objects
, clique com o botão direitoLinked Servers
e clique com o botão esquerdoNew Linked Server...
- Sob
General
guia escolherSQL Server
paraServer type
e escrever o nome do servidor - Na
Security
guia na parte superiorAdd
, clique em , escolha "sa" comoLocal Login
, digiteRemote User
o nome eRemote Password
- Na
Security
guia Na parte inferior (emFor a login not defined in the list above, connections will:
), escolha a primeira opção:Not be made
- Clique
OK
e inicie o teste
Agora, a única pessoa que deve ver o servidor vinculado sou eu ("sa"), mas de alguma forma outros usuários podem vê-lo e usá-lo.
Nota 1: Os usuários que podem usar o servidor vinculado têm permissões no servidor remoto, não estão vendo dados que não deveriam ver, apenas podem acessá-lo no servidor vinculado quando não deveriam.
Nota 2: Eu sou o único sysadmin
em ambas as instâncias.
sql-server
security
ssms
linked-server
Roi Gavish
fonte
fonte
Respostas:
Não há como "ocultar" um servidor vinculado ou impedir que usuários não autorizados tentem usá-lo. Tudo o que você pode controlar é se eles realmente têm acesso do outro lado. Um servidor vinculado por si só não é um objeto real; como sinônimo, você não concede acesso ao alias, apenas às coisas a que ele se refere.
Experimente e você verá que algumas de suas suposições (por exemplo, "um logon ... não pode ver o servidor vinculado no Pesquisador de Objetos") são falsas. Eu fiz isso:
sys.servers
para ver a lista de servidores vinculados.Consegui executar a seguinte consulta sem problemas:
No entanto, não consegui executar consultas em bancos de dados que não são do sistema, pois não havia concedido acesso explícito a nenhum banco de dados que não fosse do sistema ou aos objetos internos. Por exemplo:
Gerou este erro:
Espero que você possa obter resultados mais restritivos negando explicitamente o acesso a objetos específicos no servidor vinculado (ou por
DENY CONNECT SQL
esse logon totalmente), mas isso não limita seu efeito ao servidor vinculado; isso também afeta as conexões diretas.De qualquer forma, não consigo entender o que você está tentando realizar:
fonte
Você pode usar a primeira opção "Não ser criado com" um mapeamento de login como abaixo:
Aqui está o resultado com o login mapeado:
E aqui está o que acontece com outra conta
fonte