Autorizzazioni insufficienti per aprire file .mdf

sabato 23 agosto 2008 - 12.40

jtpsala Profilo | Senior Member

Un saluto a tutti gli utenti di questo Forum.
Ho un problema di questo tipo. Dopo aver installato Sql Server 2005 versione Espress, ho creato un database. Questo database l'ho inserito in una cartella condivisa su un p.c. che funziona da "server" per potervi accedere dagli altri client. Ho creato un progetto in Vb 2008 per interfacciare i dati con il database, ma nel momento in cui creo la connessione con il file del database, ricevo questo errore: Database.mdf. Autorizzazioni insufficienti per aprire il file. Rivolgersi al proprietario del file o ad Amministratore per ottenere le autorizzazioni.
Qualcuno può aiutarmi?

lbenaglia Profilo | Guru

>Questo database
>l'ho inserito in una cartella condivisa su un p.c. che funziona
>da "server" per potervi accedere dagli altri client.

SQL Server è un DBMS Server, quindi esiste un apposito servizio che si occupa di interfacciarsi ai data files ed al transaction log, gestendo le richieste e le risposte dei vari clients, quindi la locazione fisica di files che costituiscono il db è ininfluente dal punto di vista dei clients.
Rimuovi la cartella condivisa, esegui il detach del db dall'istanza, posiziona i files .mdf ed .ldf nel percorso che ritieni più opportuno (di default C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA per SQL Server 2008) e riesegui l'attach del db.
I clients per connettersi al db, dovranno autenticarsi all'istanza con la propria login e subire il processo di autorizzazione a livello di database in modo da recuperare i permessi sui singoli oggetti.

Qui trovi alcuni esempi di connection strings:
http://www.connectionstrings.com/?carrier=sqlserver2005

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

jtpsala Profilo | Senior Member

Grazie per avermi risposto.
Ho eseguito quanto da Lei scritto, togliendo la cartella condivisa ed collegando nuovamente il database nel percorso di di default.
Le premetto che in realtà io non possiedo un vero SERVER, ma utilizzo un normale client sul quale ho installato Sql Server 2005 Express.
Ora, quando da un'altro client, sul quale ho installato il vb 2008, tento di stabilire la connessione al database posizionato sul client che funge da "server" utilizzando l'autocomposizione automatica "Configurazione guidata origine dati. Il problema è che dopo aver scelto il tipo di connessione, in questo caso: Microsoft SQL Server, nella textbox "Nome server" visualizzo il mio "client server", però non riesco a selezionare il database perchè non ne rileva nessuno.
Dove sto sbagliando?
Perdoni se abuso della Sua pazienza.
Grazie in anticipo.

lbenaglia Profilo | Guru

>Grazie per avermi risposto.
Prego, ma puoi darmi del tu

>Dove sto sbagliando?
Segui i consigli che trovi in questo thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=10971

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

jtpsala Profilo | Senior Member

Grazie per il link postato.
L'ho seguito in ogni suo punto ma senza alcun risultato.
Ormai sono diversi giorni che eseguo prove su prove... Se proprio non trovo un rimedio mi tocca creare un database MsAccess (alla vecchia maniera).
Ti ringrazio per il tempo che mi hai dedicato.

lbenaglia Profilo | Guru

>Grazie per il link postato.
>L'ho seguito in ogni suo punto ma senza alcun risultato.
E' impossibile
In quel thread c'è spiegato passo passo cosa occorre fare per configurare SQL Server in modo che sia visibile ai clients, se non funziona significa che hai saltato qualche passaggio.

>Ormai sono diversi giorni che eseguo prove su prove... Se proprio
>non trovo un rimedio mi tocca creare un database MsAccess (alla
>vecchia maniera).
Se vuoi ricevere aiuto prova a fare domande più mirate spiegando nel dettaglio ogni singola operazione svolta.

>Ti ringrazio per il tempo che mi hai dedicato.
Prego.

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

jtpsala Profilo | Senior Member

Magari questo non centra nulla: quando connetto SQL Management sul p.c. che utilizzo come "server" il nome del server è "PC-MIOCOMPUTER\MSSMLBIZ; invece su l'altro p.c. mi sono accorto che c'è anche un "PC-MIOCOMPUTER\SQLEXPRESS. Forse nel primo p.c. manca qualche componente di Sql che non ho installato?

lbenaglia Profilo | Guru

>Magari questo non centra nulla: quando connetto SQL Management
>sul p.c. che utilizzo come "server" il nome del server è "PC-MIOCOMPUTER\MSSMLBIZ;
>invece su l'altro p.c. mi sono accorto che c'è anche un "PC-MIOCOMPUTER\SQLEXPRESS.
>Forse nel primo p.c. manca qualche componente di Sql che non
>ho installato?
Non ho capito niente.
Io ero rimasto che volevi permettere l'accesso ad una istanza SQL Server dai PC remoti della lan.
Ora, perché mi stai parlando di un "altro pc" che tra l'altro ha lo stesso nome del primo (cosa ovviamente impossibile)?
Spiega dettagliatamente la struttura della tua LAN, i nomi dei PC che vi appartengono, la presenza o meno di un dominio Active Directory e tutto quello che può servire per aiutarci a capire la tua infrastruttura.

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

jtpsala Profilo | Senior Member

Scusa...
la mia rete è formata da un router wirelles che fornisce la linea a due p.c., uni si chiama PC-Pippo e l'altro PC-Santina.
Il PC-Santina che non è altro che un normalissimo portatile, lo voglio utilizzare come "server" sul quale fare dei test con alcuni database Sql prima di procedere alla compilazione di un programma di gestione da installare nel mio ufficio su altri p.c. con la configurazione simile alla mia rete.
Sul PC-Santina nel momento che connetto il server in Sql Management mi sono accorto che non è registrato alcun server con il nome PC-SANTINA\SQLEXPRESS. Ecco perchè ho chiesto se in questo p.c. manca quanche componente di Sql.

lbenaglia Profilo | Guru

>la mia rete è formata da un router wirelles che fornisce la linea
>a due p.c., uni si chiama PC-Pippo e l'altro PC-Santina.
>Il PC-Santina che non è altro che un normalissimo portatile,
>lo voglio utilizzare come "server" sul quale fare dei test con
>alcuni database Sql prima di procedere alla compilazione di un
>programma di gestione da installare nel mio ufficio su altri
>p.c. con la configurazione simile alla mia rete.
OK

>Sul PC-Santina nel momento che connetto il server in Sql Management
>mi sono accorto che non è registrato alcun server con il nome
>PC-SANTINA\SQLEXPRESS. Ecco perchè ho chiesto se in questo p.c.
>manca quanche componente di Sql.

Si vede che che non esiste una istanza chiamata SQLEXPRESS.
I casi sono 3:

1) Hai installato una istanza di default (che referenzi solo con il nome della macchina o il suo indirizzo IP);
2) Hai installato una istanza denominata con un nome differente;
3) Non hai installato SQL Server

Un modo veloce per capire in che caso ti trovi è quello di eseguire l'applet Services e vedere se esiste il servizio SQL Server e l'eventuale nome dell'istanza.

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

jtpsala Profilo | Senior Member

Perdona la mia ignoranza...
da dove devo far partire l'applet Services?

lbenaglia Profilo | Guru

>Perdona la mia ignoranza...
>da dove devo far partire l'applet Services?
Control Panel > Administrative Tools > Services
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

jtpsala Profilo | Senior Member

E' attivo solo questo servizio: SQL Server (MSSMLBIZ)

lbenaglia Profilo | Guru

>E' attivo solo questo servizio: SQL Server (MSSMLBIZ)
Bene, MSSMLBIZ è il nome dell'istanza.
Ora riprendi in mano il thread che ti ho segnalato, ricordandoti che da PC-Pippo dovrai connetterti specificando PC-Santina\MSSMLBIZ.
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

jtpsala Profilo | Senior Member

Eccomi, perdona il ritardo...
ho rifatto tutto da capo e questo è l'errore quando tento di connettere il database da Pc-Pippo: Impossibile connettersi a PC-SANTINA\MSSMLBIZ.
Accesso non riconosciuto per l'utente 'PC-SANTINA\Guest'. (Miscrosoft SQL Server, errore: 18456).

lbenaglia Profilo | Guru

>ho rifatto tutto da capo e questo è l'errore quando tento di
>connettere il database da Pc-Pippo: Impossibile connettersi a
>PC-SANTINA\MSSMLBIZ.
>Accesso non riconosciuto per l'utente 'PC-SANTINA\Guest'. (Miscrosoft
>SQL Server, errore: 18456).

Se non hai un Domain Controller, abilita la SQL Server Authentication per l'istanza ed utilizza questo tipo di autenticazione per connetterti specificando una login SQL Server valida:
http://www.hostmysite.com/support/vps/windows/mixedmode/

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

jtpsala Profilo | Senior Member

Ci sono riuscito!!!
In Sql Management ho aggiunto l'account di accesso PC-Santina\Guest e funziona...
Era rimasto solo il firewall. Dopo aver averpo la porta 1433 TCP su entrambi i p.c. la connessione non funzionava. Allora, consultando una piccola guida sulla configurazione di Sql ho attivato anche la porta 1434 UDP. Funziona alla grande.

Lorenzo ti ringrazio per la tua eccezionale pazienza.
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-2014
Running on Windows Server 2008 R2 Enterprise, SQL Server 2008 & ASP.NET 3.5