Identificando uma fonte de dados usando um nome de servidor vinculado
Após a definição de um servidor vinculado, para fazer referência a objetos de dados naquele servidor vinculado, é possível usar um nome de quatro partes no formulário linked_server_name**.catalog.**schema.object_name em instruções Transact-SQL. As partes são definidas como:
linked_server_name
Servidor vinculado que faz referência à fonte de dados OLE DB.catalog
Catalogo na fonte de dados OLE DB que contém o objeto.schema
Esquema no catálogo que contém o objeto.object_name
Objeto de dados no esquema.
Por exemplo, a consulta a seguir faz referência às tabelas Production.Product e Sales.SalesOrderDetails no banco de dados AdventureWorks2008R2 no servidor vinculado SEATTLESales:
SELECT p.Name, sod.SalesOrderID
FROM SEATTLESales.AdventureWorks2008R2.Production.Product p
INNER JOIN SEATTLESales.AdventureWorks2008R2.Sales.SalesOrderDetail sod
ON p.ProductID = sod.ProductID
ORDER BY p.Name ;
O SQL Server usa linked_server_name para identificar o provedor OLE DB e a fonte de dados. Os parâmetros catalog, schema e object_name são passados ao provedor OLE DB para identificar um objeto de dados específico. Quando o servidor vinculado faz referência a uma instância do SQL Server, o catalog faz referência a um banco de dados e o schema faz referência a um esquema.
Em versões anteriores do SQL Server, um esquema é o proprietário de um objeto. No SQL Server, os esquemas existem independentemente do usuário do banco de dados que os cria. Para obter mais informações sobre esquemas, no SQL Server, consulte Separação do esquema de usuário.
Sempre use nomes completamente qualificados ao trabalhar com objetos em servidores vinculados. Não há nenhum suporte para resolução implícita para o nome do proprietário do dbo para tabelas em servidores vinculados. Portanto uma consulta sem um nome de esquema gera um erro 7313, mesmo quando o servidor vinculado é outra instância do SQL Server.
O administrador do sistema pode controlar quem pode acessar um servidor vinculado específico configurando mapeamentos de logon usando o procedimento armazenado do sistema sp_addlinkedsrvlogin. Esse procedimento armazenado permite configurar um logon remoto e uma senha para um logon local específico. O procedimento armazenado também permite configurar mapeamentos "próprios" para logons autenticados do Windows.
Observação sobre segurança |
---|
Ao conectar a uma outra fonte de dados, o SQL Server representa o logon apropriadamente para logons autenticados do Windows. No entanto o SQL Server não pode representar logons autenticados do SQL Server. Portanto, para logons autenticados do SQL Server, o SQL Server pode acessar outra fonte de dados, como arquivos ou fontes de dados não relacionais, como o Active Directory, usando o contexto de segurança da conta do Windows sob a qual o serviço do SQL Server está sendo executado. Potencialmente, isso pode fornecer acesso a esses logons a uma outra fonte de dados para a qual eles não têm permissões, mas a conta em que o serviço do SQL Server está sendo executada realmente tem permissões. Essa possibilidade deve ser considerada quando acesso a um logon autenticado do SQL Server a um servidor vinculado é fornecido usando sp_addlinkedsrvlogin. |
Consulte também