3 messaggi dal 23 aprile 2009
Buongiorno a tutti.
Ho una domanda su quale non riesco trovare la risposta già da qualche settimana.
Ho installato sul pc sql server 2008 express, visual web developer 2008 express. Sto seguendo il libro di Griffin V W D 2008 Ex . Non riesco ad aggiornare i record di un sql. Ero arrivato al punto di formattare il pc ma nulla da fare. L' ho formattato cmq anche perchè prima era installato sql 2005 express, qualcosa andato storto e non potevo ne deinstallarlo, ne riparare, ne aggiornare a quello 2008 tramite la procedura offerta da quest'ultimo. Con 2005 cmq nonostante che era qualche problema funzionava uguale come lo fa adesso dopo aver formattato il pc e dopo aver installato da zero e subito 2008 senza naturalmente passare da 2005 (parlo sia del server che web dev). Che succede... Mi autorizza ad entrare nel mio Portale Personale (non sò se vi presente il libro di Griffin?..), riesco a leggere i record, ma non riesco ad aggiornarli.
Un'altro problema che non riesco ad installare Microsoft sql server 2008 management studio express. L'ho scaricato come parte di SQL ADV, poi ho scaricato un'altro file separato rilasciato da Ms a febbraio. Niente. Passa il test, installa i file di supporto, mi fa scegliere il servizio al quale aggiungere le funzionalità (sqlexpress) e poi... nessuna possibilità selezionare / deselezionare SSMSE. Quindi non ho la possibilità di impostare le autorizzazioni per sql server.
Domanda...
C'e una via di mezzo d'impostazioni per sql tra: Integrated Security=True, Integrated Security=SSPI, Trusted_Connection=Yes o nessuna stringa proprio?..
Qual'è potrebbe essere il problema che non riesco ad installare SSMSE?.. C'e un'altro modo per impostare le autorizzazioni?.. Differenza tra TOSHIBA/Yuri, TOSHIBA/User, TOSHIBA/ASPNET ecc?.. Qual è procedimento per autorizzazione: Una pagina web generata da Visual Web Dev >> Dev server di Visual Web Dev >> SQL Server 2008 Express?..
Sinceramente parlando conosco un'po access ma poco sql. Non vorrei poi incasinare un'altra volta il pc. Aspetto la risposta od almeno un consiglio mirato dove posso rivolgermi senza perdere troppo tempo.
Grazie in anticipo.
Yuri.
1.976 messaggi dal 27 luglio 2005
Contributi
salve Yuri,
qwarz987 ha scritto:
Mi autorizza ad entrare nel mio Portale Personale (non sò se vi presente il libro di Griffin?..), riesco a leggere i record, ma non riesco ad aggiornarli.


ma ti viene segnalata un'eccezione, un errore, un qualche cosa?
non so se tu stia tra parentesi verificando il database giusto..
tutte le versioni Express di Visual Studio utilizzano tendenzialmente non gia' il servizio tradizionale di SQL Server\SQLExpress, bensi' utilizzano le User Instances, http://msdn.microsoft.com/en-us/library/bb264564.aspx ..
tra l'altro questo comporta il referenziare un file di database sul proprio file system, il proprio modello di database, che al momento dell'esecuzione dell'applicazione viene "copiato" nella directory di esecuzione dell'applicazione stessa.. questo comporta la sovrascrittura dei file di database eventualmente gia' presenti e quindi la percezione che gli aggiornamenti alla base dati non avvengano, in quanto il db di "sviluppo" viene sovrascritto dal modello referenziato.. e' quindi indicato verificare che, nella Solution Explorer di Visual Studio, il file modello di database abbia l'impostazione di proprieta' "Copy to output directory" = "Copy if newer" e non gia' "copy always"..

qwarz987 ha scritto:
Un'altro problema che non riesco ad installare Microsoft sql server 2008 management studio express. L'ho scaricato come parte di SQL ADV, poi ho scaricato un'altro file separato rilasciato da Ms a febbraio. Niente. Passa il test, installa i file di supporto, mi fa scegliere il servizio al quale aggiungere le funzionalità (sqlexpress) e poi... nessuna possibilità selezionare / deselezionare SSMSE. Quindi non ho la possibilità di impostare le autorizzazioni per sql server.

presso http://www.asql.biz/it/Articles.aspx, trovi delle mie esperienze relativamente alle installazioni di SQLExpress, SSMS, etc.. magari possono esserti di conforto e aiuto..

Domanda...
C'e una via di mezzo d'impostazioni per sql tra: Integrated Security=True, Integrated Security=SSPI, Trusted_Connection=Yes o nessuna stringa proprio?..

le prime 3 indicazioni che hai fatto riguardano tutte il tipo di autenticazione integrata, che come vedi puo' essere specificata in diversi modi.. ma tutte e 3 ottengono il medesimo risultato..
"nessuna stringa proprio", invece, non dovrebbe essere usata :)

Domanda...
Qual'è potrebbe essere il problema che non riesco ad installare SSMSE?.. C'e un'altro modo per impostare le autorizzazioni?.. Differenza tra TOSHIBA/Yuri, TOSHIBA/User, TOSHIBA/ASPNET ecc?.. Qual è procedimento per autorizzazione: Una pagina web generata da Visual Web Dev >> Dev server di Visual Web Dev >> SQL Server 2008 Express?..


le "autorizzazioni", al pari della stragrande maggioranza delle operazioni, possono ovviamente anche essere gestite "non visualmente" tramite opportuni "comandi" da eseguirsi magari tramite SqlCMD.exe, lo strumento a riga di comando di SQL Server..
vedo pero' che hai notevoli lacune in fatto di cosa in effetti le autorizzazioni siano, come funzionino, etc..
ti consiglierei un buon libro, ma sicuramente i BOL, http://msdn.microsoft.com/en-us/library/ms130214.aspx (i Books on Line, la guida ufficiale di SQL Server, disponibile anche in italiano presso http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97&displaylang=en) costituiscono la nerbatura della preparazione che devi acquisire..
una pagina web, di base, ha poco a che spartire con il servizio SQL Server... c'e' un servizio, SQL Server, che viene eseguito nel contesto di sicurezza a livello di sistema operativo.. e qui si delineano le prime implementazioni di sicurezza...
c'e' poi l'autenticazione.. cioe' la fase dove un utente, sia esso un altro servizio (IIS, un utente interattivo con una sua Windows login ovvero una login standard SQL Server, ....) tenta una connessione all'istanza SQL Server..
SQL Server valida le credenziali fornite, che nel caso di una login integrata sono costituite dal SID della login stessa (e quindi non viaggiano informazioni esplicite di autenticazione, bensi' un dato binario) restituito dal Domain Controller responsabile ovvero dal sistema operativo stesso in caso di assenza di dominio; nel caso invece di autenticazione standard SQL Server l'utente deve fornire manualmente le proprie credenziali, tipicamente "nome utente" e "password".. Queste informazioni vengono quindi, come detto, validate da SQL Server verificando che esista una login autorizzata (un server principal, come vedrai nei BOL) all'autenticazione.. finita questa prima fase con successo, entra in campo la seconda parte dell'implementazione di sicurezza.. la validazione di accesso ad ogni singolo database.. questa funzionalita' viene implementata generando dei "database users" che vengono mappati a delle login a livello di istanza.. cio' rende possibile, dopo l'autenticazione che abbiamo visto prima, l'accesso all'utente corrente allo specifico database a lui interessante.. in assenza della concessione di questa autorizzazione di accesso ad uno o piu' database registrati, l'utente esterno non potra' procedere oltre nel suo utilizzo di SQL Server..
a livello di ogni singolo database, viene implementata la terza fase della piattaforma di sicurezza.. la gestione dei privilegi di accesso ad ogni singolo oggetto all'interno dello stesso db, quindi tabelle, viste, stored procedures, etc.. per predefinizione, ogni database user viene reso membro di un "ruolo" a livello di database, il ruolo "public".. pensa ai ruoli indicatgivamente come ai vari ruoli disponibili a livello di sistema operativo.. vengono utilizzati al fine della manipolazione dei privilegi con una granularita' superiore..
tornando al ruolo "public", questi non vanta alcun privilegio nei confronti degli oggetti presenti nel database.. non potra' quindi interrogare tabelle o viste, eseguire stored procedures, ...
esistono dei ruoli predefiniti, sia a livello di istanza (che evantualmente raggruppano "login") che di database (che raggruppano "database users")..
a livello di db, oltre a "public", esistono "db_datareader" (che vanta privilegi di lettura su tutte le tabelle del db), "db_datawriter" (che vanta privilegi di scrittura su tutte le tabelle del db)..
quello che pero' dovresti implementare e' pero' non gia' l'utilizzo di questi 2 ultimi per l'accesso diretto ai dati ed alle tabelle, bensi' la gestione di ruoli "definiti dall'utente" (da chi disegna la base dati).. avrai magari quindi un ruolo "Executive", che raggruppa tutti gli appartenenti alla "direzione aziendale", un ruolo "Staff" che raggruppa gli appartenenti allo staff dirigenzialie, e cosi' via fino magari al ruolo "Magazzino", che raggruppa tutti gli impiegati appartenenti al settore "magazzino" stesso..
con un'architettura di questo tipo puoi ovviamente con migliore efficacia gestire "chi puo' accedere a cosa".. "accesso ai dati" che, tra l'altro, e non solo per convinzione personale ma diffusa (almeno a livello di dba e non di sviluppatori) andrebbe concesso esclusivamente tramite l'esecuzione di stored procedures e giammai tramite "SELECT/UPDATE/INSERT/DELETE" dirette sulle tabelle.. ma qui potremmo aprire "una guerra di religione" :)

e torniamo infine alla tua pagina web.. probabilmente IIS si incarica delle problematiche di autenticazione nei confronti dell'istanza.. quindi, TOSHIBA/ASPNET potrebbe (ma non necessariamente) essere appunto l'account che esegue il servizio IIS che dovra' essere validato da SQL Server...
poi ci sara' magari una tabella di mappatura di "utenti" tradizionali, i classici "pippo\pluto\paperino".. ma questi sono solitamente solo palliativi alla gestione integrata della sicurezza fatta da SQL Server.. il contesto di sicurezza resta sempre il medesimo, quello dell'account che accede all'istanza..

tutto questo se.... se non si utilizzano le User Instances :)
vedi comunque l'articolo di Roger Wolters indicato in apertura relativamente a questa "aberrazione" :)

Domanda...
Sinceramente parlando conosco un'po access ma poco sql. Non vorrei poi incasinare un'altra volta il pc. Aspetto la risposta od almeno un consiglio mirato dove posso rivolgermi senza perdere troppo tempo.
Grazie in anticipo.
Yuri.

non vorrei sembrarti sgarbato, ma ti consiglio di studiare attentamente i BOL, in quanto SQL Server non e' come Access.. e' in effetti una piattaforma completa, dove la sicurezza riveste un aspetto formale ed importante, che deve essere ben compreso prima di iniziare a "giocare" con il linguaggio.. almeno, IMVHO..
parti quindi da http://msdn.microsoft.com/en-us/library/bb510589.aspx ..
saluti ed auguri

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
3 messaggi dal 23 aprile 2009
andrea montanari ha scritto:
non vorrei sembrarti sgarbato,..

Assolutamente no, anzi, merito dei calci nel c... ;)

Andrea, buongiorno.
Grazie mille per la risposta.
Errore non c'era. E' solo che non potevo aggiornare i record e poi quello che non riuscivo ad installare SSMSE.
Devo dare sicuramente un'occhiata su tutti i siti / libri che mi ha consigliato. Che SQL è ben diverso da Access a livello applicativo lo sapevo cmq.
Grazie un'altra volta.
Yuri.
http://www.lightsandshadows.net

andrea montanari ha scritto:
salve Yuri,
qwarz987 ha scritto:
Mi autorizza ad entrare nel mio Portale Personale (non sò se vi presente il libro di Griffin?..), riesco a leggere i record, ma non riesco ad aggiornarli.


ma ti viene segnalata un'eccezione, un errore, un qualche cosa?
non so se tu stia tra parentesi verificando il database giusto..
tutte le versioni Express di Visual Studio utilizzano tendenzialmente non gia' il servizio tradizionale di SQL Server\SQLExpress, bensi' utilizzano le User Instances, http://msdn.microsoft.com/en-us/library/bb264564.aspx ..
tra l'altro questo comporta il referenziare un file di database sul proprio file system, il proprio modello di database, che al momento dell'esecuzione dell'applicazione viene "copiato" nella directory di esecuzione dell'applicazione stessa.. questo comporta la sovrascrittura dei file di database eventualmente gia' presenti e quindi la percezione che gli aggiornamenti alla base dati non avvengano, in quanto il db di "sviluppo" viene sovrascritto dal modello referenziato.. e' quindi indicato verificare che, nella Solution Explorer di Visual Studio, il file modello di database abbia l'impostazione di proprieta' "Copy to output directory" = "Copy if newer" e non gia' "copy always"..

qwarz987 ha scritto:
Un'altro problema che non riesco ad installare Microsoft sql server 2008 management studio express. L'ho scaricato come parte di SQL ADV, poi ho scaricato un'altro file separato rilasciato da Ms a febbraio. Niente. Passa il test, installa i file di supporto, mi fa scegliere il servizio al quale aggiungere le funzionalità (sqlexpress) e poi... nessuna possibilità selezionare / deselezionare SSMSE. Quindi non ho la possibilità di impostare le autorizzazioni per sql server.

presso http://www.asql.biz/it/Articles.aspx, trovi delle mie esperienze relativamente alle installazioni di SQLExpress, SSMS, etc.. magari possono esserti di conforto e aiuto..

Domanda...
C'e una via di mezzo d'impostazioni per sql tra: Integrated Security=True, Integrated Security=SSPI, Trusted_Connection=Yes o nessuna stringa proprio?..

le prime 3 indicazioni che hai fatto riguardano tutte il tipo di autenticazione integrata, che come vedi puo' essere specificata in diversi modi.. ma tutte e 3 ottengono il medesimo risultato..
"nessuna stringa proprio", invece, non dovrebbe essere usata :)

Domanda...
Qual'è potrebbe essere il problema che non riesco ad installare SSMSE?.. C'e un'altro modo per impostare le autorizzazioni?.. Differenza tra TOSHIBA/Yuri, TOSHIBA/User, TOSHIBA/ASPNET ecc?.. Qual è procedimento per autorizzazione: Una pagina web generata da Visual Web Dev >> Dev server di Visual Web Dev >> SQL Server 2008 Express?..


le "autorizzazioni", al pari della stragrande maggioranza delle operazioni, possono ovviamente anche essere gestite "non visualmente" tramite opportuni "comandi" da eseguirsi magari tramite SqlCMD.exe, lo strumento a riga di comando di SQL Server..
vedo pero' che hai notevoli lacune in fatto di cosa in effetti le autorizzazioni siano, come funzionino, etc..
ti consiglierei un buon libro, ma sicuramente i BOL, http://msdn.microsoft.com/en-us/library/ms130214.aspx (i Books on Line, la guida ufficiale di SQL Server, disponibile anche in italiano presso http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97&displaylang=en) costituiscono la nerbatura della preparazione che devi acquisire..
una pagina web, di base, ha poco a che spartire con il servizio SQL Server... c'e' un servizio, SQL Server, che viene eseguito nel contesto di sicurezza a livello di sistema operativo.. e qui si delineano le prime implementazioni di sicurezza...
c'e' poi l'autenticazione.. cioe' la fase dove un utente, sia esso un altro servizio (IIS, un utente interattivo con una sua Windows login ovvero una login standard SQL Server, ....) tenta una connessione all'istanza SQL Server..
SQL Server valida le credenziali fornite, che nel caso di una login integrata sono costituite dal SID della login stessa (e quindi non viaggiano informazioni esplicite di autenticazione, bensi' un dato binario) restituito dal Domain Controller responsabile ovvero dal sistema operativo stesso in caso di assenza di dominio; nel caso invece di autenticazione standard SQL Server l'utente deve fornire manualmente le proprie credenziali, tipicamente "nome utente" e "password".. Queste informazioni vengono quindi, come detto, validate da SQL Server verificando che esista una login autorizzata (un server principal, come vedrai nei BOL) all'autenticazione.. finita questa prima fase con successo, entra in campo la seconda parte dell'implementazione di sicurezza.. la validazione di accesso ad ogni singolo database.. questa funzionalita' viene implementata generando dei "database users" che vengono mappati a delle login a livello di istanza.. cio' rende possibile, dopo l'autenticazione che abbiamo visto prima, l'accesso all'utente corrente allo specifico database a lui interessante.. in assenza della concessione di questa autorizzazione di accesso ad uno o piu' database registrati, l'utente esterno non potra' procedere oltre nel suo utilizzo di SQL Server..
a livello di ogni singolo database, viene implementata la terza fase della piattaforma di sicurezza.. la gestione dei privilegi di accesso ad ogni singolo oggetto all'interno dello stesso db, quindi tabelle, viste, stored procedures, etc.. per predefinizione, ogni database user viene reso membro di un "ruolo" a livello di database, il ruolo "public".. pensa ai ruoli indicatgivamente come ai vari ruoli disponibili a livello di sistema operativo.. vengono utilizzati al fine della manipolazione dei privilegi con una granularita' superiore..
tornando al ruolo "public", questi non vanta alcun privilegio nei confronti degli oggetti presenti nel database.. non potra' quindi interrogare tabelle o viste, eseguire stored procedures, ...
esistono dei ruoli predefiniti, sia a livello di istanza (che evantualmente raggruppano "login") che di database (che raggruppano "database users")..
a livello di db, oltre a "public", esistono "db_datareader" (che vanta privilegi di lettura su tutte le tabelle del db), "db_datawriter" (che vanta privilegi di scrittura su tutte le tabelle del db)..
quello che pero' dovresti implementare e' pero' non gia' l'utilizzo di questi 2 ultimi per l'accesso diretto ai dati ed alle tabelle, bensi' la gestione di ruoli "definiti dall'utente" (da chi disegna la base dati).. avrai magari quindi un ruolo "Executive", che raggruppa tutti gli appartenenti alla "direzione aziendale", un ruolo "Staff" che raggruppa gli appartenenti allo staff dirigenzialie, e cosi' via fino magari al ruolo "Magazzino", che raggruppa tutti gli impiegati appartenenti al settore "magazzino" stesso..
con un'architettura di questo tipo puoi ovviamente con migliore efficacia gestire "chi puo' accedere a cosa".. "accesso ai dati" che, tra l'altro, e non solo per convinzione personale ma diffusa (almeno a livello di dba e non di sviluppatori) andrebbe concesso esclusivamente tramite l'esecuzione di stored procedures e giammai tramite "SELECT/UPDATE/INSERT/DELETE" dirette sulle tabelle.. ma qui potremmo aprire "una guerra di religione" :)

e torniamo infine alla tua pagina web.. probabilmente IIS si incarica delle problematiche di autenticazione nei confronti dell'istanza.. quindi, TOSHIBA/ASPNET potrebbe (ma non necessariamente) essere appunto l'account che esegue il servizio IIS che dovra' essere validato da SQL Server...
poi ci sara' magari una tabella di mappatura di "utenti" tradizionali, i classici "pippo\pluto\paperino".. ma questi sono solitamente solo palliativi alla gestione integrata della sicurezza fatta da SQL Server.. il contesto di sicurezza resta sempre il medesimo, quello dell'account che accede all'istanza..

tutto questo se.... se non si utilizzano le User Instances :)
vedi comunque l'articolo di Roger Wolters indicato in apertura relativamente a questa "aberrazione" :)

Domanda...
Sinceramente parlando conosco un'po access ma poco sql. Non vorrei poi incasinare un'altra volta il pc. Aspetto la risposta od almeno un consiglio mirato dove posso rivolgermi senza perdere troppo tempo.
Grazie in anticipo.
Yuri.

non vorrei sembrarti sgarbato, ma ti consiglio di studiare attentamente i BOL, in quanto SQL Server non e' come Access.. e' in effetti una piattaforma completa, dove la sicurezza riveste un aspetto formale ed importante, che deve essere ben compreso prima di iniziare a "giocare" con il linguaggio.. almeno, IMVHO..
parti quindi da http://msdn.microsoft.com/en-us/library/bb510589.aspx ..
saluti ed auguri

http://
Modificato da qwarz987 il 02 maggio 2009 12.13 -
2 messaggi dal 26 gennaio 2010
Ciao Yuri. Sono inciampato sullo stesso problema. Con lo stesso libro sono sicuro di aver seguito "passo per passo" tutte le istruzioni nella convinzione di non aver sbagliato nulla (rispetto alle indicazioni del libro).
Non riesco a modificare i dati nella gridview quando accedo al sito.
mi visualizza i dati in tabella ma quando li modifico rimangono gli stessi...
Per caso hai trovato la soluzione a quel problema per facilitarmi la conclusione del sito così poi potrò andare a vedermi anche questi altri libri?
Grazie in anticipo, spero riceverai una notifica di questo messaggio se no... sono 45 euro di libro spesi inutilmente :(
Ciao...
3 messaggi dal 23 aprile 2009
MrCorda, buongiorno,..
e scusami per questa mia risposta con un bel pò di ritardo. Infatti, non ho visto o forse non ho fatto caso cmq non mi risulta la notifica della tua domanda. Ora mi trovo qui direi per un caso.
No, non ho risolto il problema. Sinceramente parlando ho scelto poi la mia classica soluzione basata su ASP quello classico con Access come DB. Ho aggiunto un pizzico di Ajax a tutto ciò... ed eccovi un ASP.NET a basso costo senza tanti problemi almeno per me ed è funzionante come lo voglio io su tutti i browser - in questo caso parlo di un altro problema con uno dei controlli lato server mi pare un menu a tendina che si visualizzava bene su tutti i browser tranne... Internet Explorer 8. Pazzesco, sembra una magia, nera, però :( , ma è così. Genero il web, lo controllo su Firefox, su Opera e va bene, su IE... quel menu non appare proprio. Cmq, per me lo standard del web è HTML e non quello che generano altri programmi / server / application ecc, in questo caso, purtroppo, anche asp.net.
A dir la verità non ci voglio proprio buttarmi su ASP.NET, SQL & C°. Dopo un qualcosa che non va qui, qualcos'altro che non va lì ho rinunciato. Rispetto la MS, uso da una vita solo ed esclusivamente Windows, odio il Mak-kakka e tutto quello che gli sta intorno ma in questo caso rinuncio al prodotto MS.
Buon proseguimento.
Y.

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.