none
Da sqlserver 2000 ad sqlserver 2014 RRS feed

  • Discussione generale

  • Salve, ho bisogno di portare un database da sqlserver 2000 ad sqlserver 2014, mi sembra di capire che il passaggio diretto non possa essere effettuato quindi ho installato sqlserver 2008R2 ed i miei step sono stati: sqlserver 2000 -> sqlserver 2008R2 -> sqlserver 2014, l'errore sta proprio in quest'ultimo passo. Quando tento di ripristinare il database su sqlserver 2014 mi ritorna l'errore: "Impossibile eseguire BACKUP LOG perchè non è disponibile un backup di database corrente".

    Qualcuno sa dirmi come risolvere?

    Grazie anticipatamente

    lunedì 29 settembre 2014 10:09

Tutte le risposte

  • nella migrazione da sql server 2008 r2 a sql server 2014 non stai seguendo la procedura corretta, vedi qui

    http://dba.stackexchange.com/questions/68905/can-i-upgrade-sql-server-2008-r2-standard-to-sql-server-2014-developer


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 29 settembre 2014 10:34
    Moderatore
  • Grazie per il tuo aiuto, ma di preciso la soluzione qual è? Dici di togliere il nome dell'istanza per l'accesso al database come descritto? Già sul mio sqlserver si accede almeno dal management studio solo col nome server... non è una versione express, mentre la 2008R2 lo è.
    lunedì 29 settembre 2014 11:09
  • proviamo un'altra strada.

    prova a fare il semplice detach del database dall'istanza sql2008 e l'attach sull'istanza sql 2014

    http://technet.microsoft.com/en-us/library/ms187858(v=sql.110).aspx


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 29 settembre 2014 12:31
    Moderatore
  • Il database sembra averlo importato correttamente ma ho come l'impressione che ci sia qualche problema con gli utenti. Dato che non mi serve pià in scrittura come posso portarlo in lettura ed accedere alle tabelle anche con un utente nuovo?
    lunedì 29 settembre 2014 15:28
  • cosa intendi per "problema con gli utenti" ?

    spiegati meglio.


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 29 settembre 2014 15:37
    Moderatore
  • Ho questo database legato ad un software ormai in disuso, questo software mi sembra di capire che faccia tutto con un utente SYSTEM che ha tutti i permessi sul db. Io ho ripristinato il database sul nuovo server seguendo il tuo consiglio ma adesso ho bisogno di creare un utente in sola lettura che mi permetta di utilizzare il software in consultazione (dato che non conosco la password per l'utente SYSTEM e neanche mi compare fra gli utenti). Ho creato l'utente wa con rispettiva password e l'ho associato al database ma non riesco ad accedere, carica l'origine dati ma poi il software non gira, ho letto che quando si fa detach/attach possono impazzire i permessi degli utenti. Spero di essere stato un po' più chiaro

    Grazie per il tuo aiuto

    martedì 30 settembre 2014 08:39
  • c'è un po' di confusione nelle idee che ti sei fatto.

    1) system è probabilmente l'account con cui gira il servizio di sql server.

    2) la detach/attach non fa impazzire i permessi degli utenti.

    3) sarebbe utile sapere quale account si aspetta di trovare questo gestionale.

    4) dentro a SECURITY->LOGINS del database quali account trovi ?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    martedì 30 settembre 2014 10:36
    Moderatore
  • Trovo un sacco di utenti che utilizzavano il sw poi l'utente wa creato da me ed infine:

    • dbo
    • guest
    • INFORMATION_SCHEMA
    • sys
    • syssql

    credo che l'admin sia comunque syssql

    martedì 30 settembre 2014 11:00
  • e quali permessi espliciti di security avevano gli utenti che utilizzavano il gestionale sui securables ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    martedì 30 settembre 2014 14:15
    Moderatore
  • Questo è quello che vedo nelle proprietà dell'utente:
    • Schemi di proprietà: ognuno il suo nome utente
    • Appartenenza: CONTAB (risulta essere uno schema)
    • Entità a protezione diretta: vuoto
    • Proprietà estese: vuoto

    spero possa tornarti utile

    Grazie

    martedì 30 settembre 2014 14:41
  • attribuisci anche al tuo utente wa lo schema CONTAB e riprova

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    mercoledì 1 ottobre 2014 14:47
    Moderatore
  • Nessuna idea?
    mercoledì 1 ottobre 2014 15:01
  • ma se ti ho appena risposto poco sopra!

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    mercoledì 1 ottobre 2014 15:10
    Moderatore
  • Scusami, la pagina non si sarà aggiornata correttamente, non mi spuntava. Grazie per il suggerimento, avevo già provato ma non funziona, sto facendo qualche altra prova con i permessi, vediamo cosa ne esce, ti aggiorno... grazie per l'aiuto :)
    giovedì 2 ottobre 2014 07:11
  • Allora: ho installato lo stesso db su un altro sqlserver 2000, creo un utente nelle configurazioni generali (lo chiamerò utente generale) che corrisponde ad un utente interno al db (lo chiamerò utente db), associo l'utente generale all'utente db e setto come predefinito per l'utente generale il db di mio interesse. Fila tutto liscio, ho il mio software in sola lettura come desiderato.

    Faccio la stessa cosa con sqlserver 2014 ma quando cerco di associare l'utente generale all'utente db mi restituisce questo errore:

    TITOLO: Microsoft SQL Server Management Studio ------------------------------ Impossibile eseguire Crea per Utente 'LEO'. (Microsoft.SqlServer.Smo) Per visualizzare le informazioni della Guida, fare clic qui: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Crea+User&LinkId=20476 ------------------------------ ULTERIORI INFORMAZIONI: Eccezione durante l'esecuzione di un'istruzione o un batch Transact-SQL. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ L'utente, il gruppo o il ruolo 'LEO' esiste già nel database corrente. (Microsoft SQL Server, errore: 15023) Per visualizzare le informazioni della Guida, fare clic qui: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.2000&EvtSrc=MSSQLServer&EvtID=15023&LinkId=20476 ------------------------------ PULSANTI: OK -----------------------------

    Qualche idea?
    Grazie

    venerdì 10 ottobre 2014 09:00
  • Ciao,

    come hai già sperimentato, SQL Server utilizza due "contenitori" diversi per identificare le login e gli utenti del database.

    Quando crei una login (solitamente si fa dal Management Studio, per semplicità), viene popolata una tabella nel database master, dove si trovano le configurazioni del server.

    Durante la creazione di una nuova login, avrai messo la spunta sulla checkbox relativa al database a cui quella login deve accedere assegnando i relativi permessi (es. db_datareader). Quello che fa SQL Server dietro le quinte è creare un nuovo utente per il database e mapparlo con la corrispondente login, popolando una tabella nel database che hai collegato.

    Se fai un backup o attach/detach del database e lo ripristini/copi su un altro SQL Server gli utenti del database viaggiano con lui (perchè sono scritti nelle tabelle di sistema del database), mentre le login devono essere ricreate o riassegnate (perchè sono nel database master dell'istanza SQL Server da cui proviene il db).

    In questo caso l'errore si riferisce al fatto che stai creando una nuova login che ha lo stesso nome dell'utente già presente nel database.

    Puoi fare due cose:

    1) usare la stored procedure sp_change_users_logins (http://msdn.microsoft.com/it-it/library/ms174378.aspx) che "rimappa" la login del nuovo server con l'utente del db ripristinato o attachato.

    2) cancellare l'utente dal database (cartella Security del database specifico -> Users) e rifare tutto daccapo (nuova login + assegnazione al database + assegnazione permessi)


    Danilo Dominici MCP MCDBA MCITP MCSE MCAD MCT Questo post è fornito "così com'è". Non conferisce garanzie o diritti di alcun tipo. Ricorda di usare la funzione "segna come risposta" per i post che ti hanno aiutato a risolvere il problema e "deseleziona come risposta" quando le risposte segnate non sono effettivamente utili. Questo è particolarmente utile per altri utenti che leggono il thread, alla ricerca di soluzioni a problemi similari. ENG: This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" on the post that helps you, and to click "Unmark as Answer" if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    venerdì 10 ottobre 2014 12:47
  • Grandissimo, ha funzionato! Grazie

    • Modificato clr4633 lunedì 13 ottobre 2014 14:51
    venerdì 10 ottobre 2014 15:01
  • Rieccomi, purtroppo il problema sembrava essere del tutto risolto ed invece... questa mattina ho fatto un nuovo backup del database in modo da avere l'ultima copia aggiornata, ho importato il backup su sqlserver 2008 con compatibilità, ho fatto detach e attach su sqlserver 2014, ho eliminato l'utente dal db e l'ho creato dalla voce Sicurezza -> account utente del management studio, l'ho collegato al database di interesse e tutto sembrava filare liscio, ma quando provo ad accedere dal software mi ritorna una sql exception, posto il link perchè è parecchio lunga la segnalazione.

    http://pastebin.com/FX1wsbrQ

    qualcuno ha qualche idea?

    lunedì 13 ottobre 2014 14:49
  • Le sto provando tutte, i permessi sono uguali a quelli dell'utente interno al db ma non capisco che senso ha quest'errore, nessuno sa aiutarmi?
    martedì 14 ottobre 2014 09:02
  • Ho provato anche con le store procedures, sempre lo stesso errore. Sto impazzendo, spero qualcuno mi aiuti
    martedì 14 ottobre 2014 14:37