Errore con linked servers verso access

martedì 01 luglio 2008 - 12.50

m.langella Profilo | Newbie

ciao a tutti,
ho creato diversi linked servers che puntano a database access che risiedono su diversi server all'interno della stessa lan.

se mi connetto al database utilizzato l'autenticazione di windows non ho nessun tipo di problema; infatti riesco a collegarmi con la base dati di access.

i problemi nascono quando mi collego a sqlserver mediante l'autenticazione sql server; collegandomi ricevo questo messaggio di errore:
"OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80040e4d: Authentication failed.]."

per collegarmi, purtroppo, sono obbligato ad utilizzare l'autenticazione sql.

è sicuramente un problema di permessi; esiste un modo mediante il quale si riesce ad effettuare un mapping tra l'utente sql server con un utente windows?
ringrazio anticipatamente.

lbenaglia Profilo | Guru

>i problemi nascono quando mi collego a sqlserver mediante l'autenticazione
>sql server;

Come hai gestito la security del Linked Server?
Io utilizzerei la stored procedure di sistema sp_addlinkedsrvlogin per mappare una login all'utente Admin del db Access come nel seguente esempio:
http://groups.google.it/group/microsoft.public.it.sql/msg/6dffb8c56791fa82

>ringrazio anticipatamente.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

m.langella Profilo | Newbie

ciao lorenzo,
per la sicurezza ho utilizzato:
EXEC sp_addlinkedsrvlogin NomeLinked, false, mio_utente_DBO, 'Admin', NULL

per i db di access che risiedono sullo stesso server del dbserver sql l'operazione va a buon fine.


lbenaglia Profilo | Guru

>ciao lorenzo,
>per la sicurezza ho utilizzato:
>EXEC sp_addlinkedsrvlogin NomeLinked, false, mio_utente_DBO,
>'Admin', NULL
Con mio_utente_DBO intendi la login associata allo user account che appartiene alla fixed database role db_owner?

>per i db di access che risiedono sullo stesso server del dbserver
>sql l'operazione va a buon fine.
L'account con il quale viene eseguito il servizio MSSQLServer ha le permission NFFS + share per accedere ai file .mdb sui vari server?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

m.langella Profilo | Newbie

ciao lorenzo,

>Con mio_utente_DBO intendi la login associata allo user account che appartiene alla fixed database role db_owner?
si

>L'account con il quale viene eseguito il servizio MSSQLServer ha le permission NFFS + share per accedere ai file .mdb sui vari server?
per il servizio MSSQLServer utilizzo "account di sistema locale".
in questo momento, visto che sono in ambiente di test, ho condiviso la cartella ed ho utilizzato la permission "everyone" (controllo completo della cartella).




Ciao!
--

lbenaglia Profilo | Guru

>per il servizio MSSQLServer utilizzo "account di sistema locale".
Il Local System Account ha diritti amministrativi ESCLUSIVAMENTE per la macchina locale.
Non è in grado di accedere ad alcuna risorsa di rete.

Se le macchine sono in dominio, definisci in Active Directory un normalissimo Domain User e da SSMS configura il servizio MSSQLServer per utilizzare tale utente.

Sui vari server che ospitano i files mdb, definisci le permission di Full Control a livello NTFS e di share per tale account.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

m.langella Profilo | Newbie

ciao,
>Se le macchine sono in dominio, definisci in Active Directory un normalissimo Domain User e da SSMS configura il servizio MSSQLServer per utilizzare tale utente.

fatto e funzionante.
grazie mille!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5