8 messaggi dal 03 novembre 2005
Ho un grosso problema.. ho installato sqlexpress in un pc dove l'utilizzatore deve avere i diritti di un "Power User". Il programma è stato installato come amministratore e poi loggandosi come Power User tutto ha funzionato. Ma se provo a crare un altro utente Power User, connettendosi al database esce fuori l'errore "Login failed for user nomepc\nomeutente".
La versione di SqlExpress è quella fornita con VS2005. La stringa di connessione è del tipo:
"Data Source=.\SQLExpress;integrated security=true;attachdbfilename=|DataDirectory|\mydb.mdf;user instance=true;"
Ho dovuto utilizzare questo tipo di connessione altrimenti sotto utente Power User non si riusciva a collegarsi al database.
Grazie per qualsiasi aiuto...
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Il fatto che l'utente sia un Power user sulla macchina non significa nulla.
L'installazione di SQL Server conferisce al gruppo BUILTIN\Administrators (ovvero agli amministratori locali della macchina su cui viene installato SQL Server) la possibilità di accedere all'istanza di SQL Server come sysadmin. PUNTO. Premesso che ci sono molte buone ragioni per impedire ciò, ma non ne parliamo altrimenti andiamo fuori tema, per far lavorare un qualunque utente devi fare in modo che egli disponga di un login valido per accedere a SQL Server. La sola appartenenza al gruppo Power User non è sufficiente e ti consiglio quindi di creare un gruppo ad hoc (nella macchina locale o meglio nel dominio), rendere membri di questo gruppo tutti gli utenti che ne hanno bisogno e quindi autorizzare questo gruppo ad accedere a SQL Server.
Giunti a questo punto l'utente non può fare ancora nulla se non tutte le attività previste per l'utente guest all'interno dei database nei quali è definito tale utente. Ti invito a far riferimento a questo mio articolo

http://www.microsoft.com/italy/technet/community/mvp/editoriali/permessi.mspx

che, benchè scritto per SQL Server 2000, è del tutto valido anche per SQL Server 2005.

Bye
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
chiaracat ha scritto:
Ho un grosso problema.. ho installato sqlexpress in un pc dove l'utilizzatore deve avere i diritti di un "Power User". Il programma è stato installato come amministratore e poi loggandosi come Power User tutto ha funzionato.


Luca ha gia' detto tutto... in aggiunta, vorrei dire che SQLExpress garantisce la connessione all'istanza anche al gruppo NT BUILTIN\Users, quindi tutti i membri di tale gruppo saranno autorizzati alla connessione al server, anche se chiaramente (e giustamente) non vengono mappati su alcun ruole del server di SQL Server e sara' quindi necessario garantire l'accesso ad ogni singolo database interessante..


Ma se provo a crare un altro utente Power User, connettendosi al database esce fuori l'errore "Login failed for user nomepc\nomeutente".
La versione di SqlExpress è quella fornita con VS2005. La stringa di connessione è del tipo:
"Data Source=.\SQLExpress;integrated security=true;attachdbfilename=|DataDirectory|\mydb.mdf;user instance=true;"
Ho dovuto utilizzare questo tipo di connessione altrimenti sotto utente Power User non si riusciva a collegarsi al database.
Grazie per qualsiasi aiuto...

a dire la verita', questa "connessione" resta comunque legata all'account di accesso a Windows, quindi un power user si connettera' sempre come membro di power user, e via dicendo..
ma tutto questo e' relativamente importante vista l'impostazione di "..;user instance=true;"... in questo caso infatti ogni utente potra' connettersi a prescindere dalle impostazioni generali di SQL Express, visto che una copia privata di sqlservr.exe verra' caricata in memoria per ogni applicativo che ne faccia richiesta.. sqlservr.exe sara' eseguito come applicazione e non come servizio nel contesto di sicurezza dei privilegi dell'account di Windows dell'utente loggato, ma l'applicazione godra', a tutti gli effetti, di privilegi amministrativi sulla User Instance caricata privatamente..
il database interessante sara' quindi referenziato dalla posizione |DataDirectory|\mydb.mdf, dalla quale verra' esplicitato e registrato il nome logico del database attaccato in questo modo..
tendenzialmente e' quindi ininfluente l'account ed i privilegi dello stesso, visto che, all'interno della User Instance, l'applicativo godra' di privilegi amministrativi... e questo non mi fa ben comprendere il messaggio di errore che ti viene sollevato...
hai altri "particolari"?

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.