Identificazione di un'origine dei dati tramite il nome di un server collegato
Dopo avere definito un server collegato, per fare riferimento a oggetti dati inclusi in tale server è possibile utilizzare un nome in quattro parti nel formato linked_server_name**.catalog.**schema.object_name nelle istruzioni Transact-SQL. Di seguito vengono definite le quattro parti:
linked_server_name
Server collegato che fa riferimento all'origine dei dati OLE DB.catalog
Catalogo dell'origine dei dati OLE DB che contiene l'oggetto.schema
Schema del catalogo che contiene l'oggetto.object_name
Oggetto dati incluso nello schema.
La query seguente fa riferimento ad esempio alle tabelle Production.Product e Sales.SalesOrderDetails del database AdventureWorks2008R2 sul server collegato 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 ;
SQL Server utilizza linked_server_name per identificare il provider OLE DB e l'origine dei dati. I parametri catalog, schema e object_name vengono passati al provider OLE DB per identificare un oggetto dati specifico. Se il server collegato fa riferimento a un'istanza di SQL Server, catalog fa riferimento a un database e schema a uno schema.
Nelle versioni precedenti di SQL Server, uno schema è il proprietario di un oggetto. In SQL Server gli schemi esistono indipendentemente dall'utente del database che li crea. Per ulteriori informazioni sugli schemi in SQL Server, vedere Separazione tra schema e utente.
Quando si utilizzano oggetti in server collegati, assegnare sempre nomi completi. La risoluzione implicita nel nome di proprietario dbo non è supportata per le tabelle in server collegati. Di conseguenza, una query in cui non viene specificato il nome di uno schema genera l'errore 7313 anche se il server collegato è un'altra istanza di SQL Server.
L'amministratore di sistema può controllare l'accesso a uno specifico server collegato impostando mapping degli account di accesso mediante la stored procedure di sistema sp_addlinkedsrvlogin. Questa stored procedure consente di impostare un account di accesso remoto e una password per uno specifico account di accesso locale. Consente inoltre di impostare mapping automatici per account di accesso con autenticazione di Windows.
Nota sulla sicurezza |
---|
Quando ci si connette a un'altra origine dei dati, SQL Server rappresenta l'account di accesso in modo appropriato per gli account di accesso con autenticazione di Windows. SQL Server non può tuttavia rappresentare account di accesso con autenticazione di SQL Server. Per gli account di accesso con autenticazione di SQL Server pertanto, SQL Server può accedere a un'altra origine dei dati, ad esempio un file oppure origini dei dati non relazionali come Active Directory, mediante il contesto di sicurezza dell'account di Windows utilizzato per l'esecuzione del servizio SQL Server. In seguito a questa operazione, tali account di accesso potrebbero accedere a un'altra origine dei dati per la quale non dispongono delle autorizzazioni, delle quali dispone però l'account utilizzato per l'esecuzione del servizio SQL Server. Questa eventualità deve essere presa in considerazione quando si concede a un account di accesso autenticato SQL Server l'accesso a un server collegato mediante sp_addlinkedsrvlogin. |
Vedere anche