Problemi con ripristino Db e mapping utente

martedì 27 maggio 2008 - 07.56

stena Profilo | Junior Member

Premessa: spero di essere chiaro.

Ho un utente 'Pippo' abilitato ad accedere al db DBPRova.

Utente Pippo -> Proprietà account di accesso -> Mapping utenti -> DBProva (check selezionato)
DBProva -> Proprietà database -> Autorizzazioni -> utenti -> Pippo

Eseguo un backup del database
Ripristino il database
Utente Pippo -> Proprietà account di accesso -> Mapping utenti -> DBProva (check selezionato)
DBProva -> Proprietà database -> Autorizzazioni -> utenti -> Pippo
Tutto funzionante.

Eseguo questa prova:
cancello e ricreo (Protezione - Account di accesso) l'utente Pippo, rimappandolo poi come nella situazione iniziale (quindi con (Mapping utenti -> DBProva (check selezionato))

Ripristino il database

Mi ritrovo in questa situazione:
Utente Pippo -> Proprietà account di accesso -> Mapping utenti -> DBProva (check "NON" selezionato)
DBProva -> Proprietà database -> Autorizzazioni -> utente Pippo

Quindi se cancello e ricreo l'utente quando poi ripristino il database l'utente perde il mapping
relativo al db ripristinato.
Con conseguenza che se cerco di rimappare l'utente al database rispristinato ottengo il seguente messaggio di errore:
<
Impossibile eseguire Crea per Utente 'Pippo'
L'utente, il gruppo o il ruolo 'Pippo' esiste già nel database corrente. (Errore 15023)
>

Per risolvere la situazione devo per prima cosa cancellare l'utente da DBProva -> Protezione -> Utenti

Grazie per eventuali spiegazioni.

alx_81 Profilo | Guru

Ciao!

>Ripristino il database
>Mi ritrovo in questa situazione:
>Utente Pippo -> Proprietà account di accesso -> Mapping
>utenti -> DBProva (check "NON" selezionato)
>DBProva -> Proprietà database -> Autorizzazioni -> utente
>Pippo
>Quindi se cancello e ricreo l'utente quando poi ripristino il
>database l'utente perde il mapping
>relativo al db ripristinato.
>Con conseguenza che se cerco di rimappare l'utente al database
>rispristinato ottengo il seguente messaggio di errore:
><
>Impossibile eseguire Crea per Utente 'Pippo'
>L'utente, il gruppo o il ruolo 'Pippo' esiste già nel database
>corrente. (Errore 15023)

>Per risolvere la situazione devo per prima cosa cancellare l'utente
>da DBProva -> Protezione -> Utenti
>
>Grazie per eventuali spiegazioni.
Sì, è un comportamento standard. Con il backup del database porti con te anche gli utenti sul db stesso.
Infatti le Login sono gli account di accesso al server e ad una login possono essere mappati uno o più utenti che poi vanno sul database (per definire oltre che il livello d'accesso al db, anche i permessi alle risorse).
Leggi questo articolo di Luca Bianchi (Quello vecchio su aspitalia, http://blogs.aspitalia.com/lucabianchi, il nuovo per ora è giù ma il link è http://community.ugiss.org/blogs/lbianchi/default.aspx) intanto:
http://www.microsoft.com/italy/technet/community/mvp/editoriali/permessi.mspx

Per fare in modo di "rimettere in ordine" le tue utenze con le relative login, puoi riferirti alla sp_change_users_login:
http://msdn.microsoft.com/it-it/library/ms174378.aspx

Ciao!
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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