Nesta página, você encontra informações sobre como gerenciar servidores vinculados na sua instância do Cloud SQL, incluindo registrar uma instância, adicionar um servidor vinculado e consultar um servidor vinculado.
Registre sua instância para permitir servidores vinculados
Para adicionar a sinalização cloudsql enable linked servers
à instância, use o
seguinte comando:
gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=on
Substitua INSTANCE_NAME
pelo nome da instância
que você quer usar para vincular servidores.
Para mais informações, consulte Configurar sinalizações do banco de dados.
Adicionar um servidor vinculado
Para adicionar um servidor vinculado, execute o comando sp_addlinkedserver
Transact-SQL:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID'
Substitua:
- LINKED_SERVER_NAME pelo nome do servidor vinculado que será criado.
- TARGET_SERVER_ID pelo nome da rede, nome do DNS ou endereço IP
do servidor vinculado. Para o nome da instância, use o formato
servername\instancename
. Se a instância usar uma porta não padrão, adicione o número da porta. Por exemplo,servername\instancename, 8080
.
Para adicionar o mapeamento de um usuário conectado, execute o seguinte comando:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'True'
Substitua LINKED_SERVER_NAME pelo nome do servidor vinculado.
Execute o comando a seguir para criar ou atualizar o login e a senha remotos padrão e aplicá-los a todos os logins locais:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @useself=N'False', @locallogin=N'LOGIN', @rmtuser=N'USER_ID', @rmtpassword='PASSWORD';
Substitua:
- LINKED_SERVER_NAME pelo nome do servidor vinculado.
- LOGIN pelo login do servidor local.
locallogin
é sysname, com um padrão NULL. NULL especifica que essa entrada se aplica a todos os logins locais que se conectam armtsrvname
. Se não for NULL,locallogin
é um login do SQL Server ou do Windows. Se você usa um login do Windows, ele precisa ter acesso ao SQL Server diretamente ou pela associação em um grupo do Windows que tenha acesso. - USER_ID pelo login do usuário.
- PASSWORD pela senha do usuário.
Adicionar um servidor vinculado com uma conexão criptografada
Para adicionar um servidor vinculado usando uma conexão criptografada, execute o comando sp_addlinkedserver
do Transact-SQL:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;'
Substitua:
- LINKED_SERVER_NAME pelo nome do servidor vinculado que será criado.
- TARGET_SERVER_ID pelo nome do servidor de destino ou o endereço IP e o número da porta do servidor de destino.
Se o nome do servidor for diferente do nome no certificado, será necessário indicar que o SQL Server pode confiar no certificado do servidor. Para atualizar a string do provedor, execute o seguinte comando:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'TARGET_SERVER_ID, @provstr=N'Encrypt=yes;TrustServerCertificate=yes;'
Substitua:
- LINKED_SERVER_NAME pelo nome do servidor vinculado que será criado.
- TARGET_SERVER_ID pelo nome do servidor de destino ou o endereço IP e o número da porta do servidor de destino.
Consultas de servidor vinculadas
O Cloud SQL suporta o uso de nomes de quatro partes para consultar servidores vinculados (nome do servidor, nome do banco de dados, nome do esquema e nome do objeto), além dos seguintes comandos:
- OPENQUERY executa uma consulta em um servidor especificado.
- EXECUTE, que permite executar o SQL dinâmico em um servidor vinculado.
Para mais informações, consulte Comparar opções de execução remota de consulta.
Ativar chamadas de procedimento remoto em um servidor vinculado
As chamadas de procedimento remoto (RPC) permitem executar procedimentos armazenados em servidores vinculados. Para adicionar a RPC, execute o comando sp_serveroption
do Transact-SQL com um argumento RPC. Há dois argumentos de RPC:
rpc
ativa a RPC a partir do servidor especificado.rpc out
ativa a RPC para o servidor especificado.
Use o comando sp_serveroption
a seguir com o argumento rpc
para ativar a RPC a partir de LINKED_SERVER_NAME:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc', @optvalue='TRUE'
Substitua LINKED_SERVER_NAME pelo nome do servidor vinculado.
Use o comando sp_serveroption
a seguir com o argumento rpc out
para
ativar a RPC:
EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='rpc out', @optvalue='TRUE'
Substitua LINKED_SERVER_NAME pelo nome do servidor vinculado.
Remover o mapeamento de usuários de um servidor vinculado
Para remover um mapeamento de usuário adicionado anteriormente, execute o seguinte comando:
EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname=N'LINKED_SERVER_NAME', @locallogin=N'LOGIN';
Substitua:
- LINKED_SERVER_NAME pelo nome do servidor vinculado a ser descartado.
- LOGIN pelo login do servidor local.
locallogin
é sysname, com um padrão NULL. NULL especifica que essa entrada se aplica a todos os logins locais que se conectam armtsrvname
. Se não for NULL,locallogin
é um login do SQL Server ou do Windows. Se você usa um login do Windows, ele precisa ter acesso ao SQL Server diretamente ou pela associação em um grupo do Windows que tenha acesso.
Remover uma instância registrada de permitir servidores vinculados
Para remover os servidores vinculados, faça o seguinte:
- Solte os servidores vinculados existentes com o procedimento armazenado sp_dropserver do Transact-SQL.
Remova a sinalização
cloudsql enable linked servers
para remover uma instância registrada.gcloud sql instances patch INSTANCE_NAME --database-flags="cloudsql enable linked servers"=off
Substitua
INSTANCE_NAME
pelo nome da instância de que você quer remover os servidores vinculados.Como alternativa, é possível executar o seguinte comando para limpar todas as sinalizações do banco de dados:
gcloud sql instances patch INSTANCE_NAME --clear-database-flags
Substitua
INSTANCE_NAME
pelo nome da instância de que você quer remover os servidores vinculados.
Resolver problemas
Mensagem de erro | Solução de problemas |
---|---|
Msg 7411, Level 16, State 1, Line 25
|
A opção DataAccess está desativada. Execute o
seguinte comando para ativar o acesso a dados:EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' Substitua LINKED_SERVER_NAME pelo nome do servidor vinculado. |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
Se você tiver esse problema ao estabelecer uma conexão
criptografada, será necessário tentar outra maneira de fornecer o ID do usuário ao
acessar o servidor vinculado. Para isso, execute este comando:
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct= N'', @provider= N'SQLNCLI', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' Substitua:
|
A seguir
- Saiba mais sobre o uso de servidores vinculados.