2012-02-07 14 views
14

Ultimamente aggiornato a SQL Server 2008 R2 Express. Quando si tenta di creare un database dopo l'accesso utilizzando l'autenticazione di Windows con il mio id roger.moore ricevo questo errore:Autorizzazioni di SQL Server 2008 R2 Express: impossibile creare database o modificare utenti

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
CREATE DATABASE permission denied in database 'master'. RESTORE HEADERONLY is terminating abnormally Error 262

Se provo ad aggiungere il ruolo sysadmin per roger.moore, questo è l'errore che ricevo :

Add member failed for ServerRole 'sysadmin'. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
User does not have permission to perform this action Error 15247

Se provo ad aggiungere questo ruolo al mio utente con T-SQL, utilizzare questo comando,

EXEC sp_addsrvrolemember 'ziffenergy\roger.moore', 'sysadmin'; 
GO 

Qui è l'errore che ricevo:

Msg 15247, Level 16, State 1, Procedure sp_addsrvrolemember, Line 29
User does not have permission to perform this action.

Qualcuno ha qualche suggerimento? Sembra che non posso fare nulla con il database sul computer locale. Nota che sono l'amministratore della workstation Windows 7 che sto utilizzando e, se provo a creare o modificare database e/o utenti sul nostro server database di test IT di rete utilizzando SQL Server Management Studio, posso farlo senza problemi.

risposta

12

Potrebbe essere un amministratore sulla workstation, ma questo non significa nulla per SQL Server. Il login deve essere un membro del ruolo sysadmin per eseguire le azioni in questione. Per impostazione predefinita, il gruppo di amministratori locali non viene più aggiunto al ruolo sysadmin in SQL 2008 R2. Dovrai accedere con qualcos'altro (ad esempio) per concederti le autorizzazioni.

+0

Grazie per il feedback. Sì, ho provato ad accedere usando sa; tuttavia, quando provo a impostare la password per sa, viene visualizzato questo messaggio di errore: "Modifica password non riuscita per accesso 'sa'. (Microsoft.SqlServer.Smo) Si è verificata un'eccezione durante l'esecuzione di un'istruzione Transact-SQL o di un batch. (Microsoft .SqlServer.ConnectionInfo) Impossibile modificare l'accesso 'sa', perché non esiste o non si dispone dell'autorizzazione. (Microsoft SQL Server, Errore: 15151) "Qualche idea? – Roger

+0

È lo stesso problema. Non sarai in grado di impostare le password perché il tuo account non ha le autorizzazioni necessarie nella tua istanza SQL. Se non si conoscono i dettagli di accesso se un account con privilegi sysadmin (o determinati altri privilegi più specifici che sono molto improbabili nella propria situazione), sarà necessario ottenerlo da qualcuno che lo fa. – squillman

+1

Ma io sono la persona che ha installato il software SQL Server 2008 R2 sulla mia workstation, quindi non dovrei avere le autorizzazioni richieste? – Roger

37

Arriva tardi alla festa, ma ho trovato questo fantastic step-by-step guide per ottenere il controllo dell'istanza SQLExpress se non si dispone della password sa. Ho usato questo processo non solo per resettare la mia password sa, ma ho anche aggiunto il mio account di dominio a tutti i ruoli del server disponibili. Ora posso creare database, modificare accessi, eseguire operazioni di massa, backup/ripristini, ecc. Utilizzando il mio normale accesso.

Per riepilogare, utilizzare Gestione configurazione SQL Server per inserire l'istanza in modalità utente singolo. Questo ti porta al sysadmin quando ti connetti, permettendoti di impostare tutto.

Modifica: Ho copiato i passaggi seguenti - complimenti all'autore originale del link sopra.

  1. Accedere al computer come amministratore (o Qualsiasi utente con privilegi di amministratore)
  2. Open "Configuration Manager di SQL Server" "Servizi di SQL Server"
  3. Cliccare sul pannello di sinistra
  4. Stop " SQL Server "e" SQL Server Agent "istanza nel riquadro di destra se è in esecuzione
  5. Eseguire SQL Express in modalità utente singolo facendo clic con il pulsante destro del mouse sull'istanza" SQL Server "-> Proprietà (nel riquadro di destra di SQL Server Configuration Manager).
  6. Fare clic sulla scheda Avanzate e cercare "Parametri di avvio". Modificare i "Parametri di avvio" in modo che il nuovo valore sia -m; (senza <>) esempio: da: -dc: \ Programmi \ Microsoft SQL ............. (fino alla fine della stringa) a: -m; -dc: \ Programmi \ Microsoft SQL .............(fino alla fine della stringa)
  7. Avviare SQL Server
  8. Aprire MS Management Server Management e accedere al server SQL con "Autenticazione Windows" come modalità di autenticazione. Poiché SQL Server è in esecuzione in modalità utente singolo e si è connessi al computer con i privilegi di amministratore, si avrà un accesso "sysadmin" al database.
  9. Espandere il nodo "Sicurezza" a MS SQL Server Management Studio nel riquadro di sinistra
  10. Espandere il "Login" nodo
  11. doppio clic sul 'sa' il login
  12. Cambiare la password inserendo una password complessa se è selezionata l'opzione "Applica criterio password", altrimenti inserisci solo una password.
  13. Assicurarsi che l'account "sa" sia "abilitato" facendo clic su Stato nel riquadro di sinistra. Impostare la radio box sotto "Login" per "Abilitato"
  14. Fare clic su "OK"
  15. Ritornare alla finestra principale di MS SQL Server Management Studio, verificare se l'autenticazione di SQL Server viene utilizzato facendo clic destro sulla parte superiore più nodo il riquadro di sinistra (in genere ". \ SQLEXPRESS (SQL Server)") e scegliendo le proprietà.
  16. Fare clic su "Sicurezza" nel riquadro di sinistra e garantire che "SQL Server e la modalità di autenticazione di Windows" è quello selezionato in "Autenticazione server"
  17. Fare clic su "OK"
  18. Disconnetti da MS SQL Server Management Studio
  19. Aprire nuovamente "Sql Server Configuration Manager" e interrompere l'istanza di SQL Server.
  20. Fare clic con il tasto destro del mouse sull'istanza di SQL Server e fare clic sulla scheda "Avanzate". Cerca nuovamente "Parametri di avvio" e rimuovi "-m;" che hai aggiunto prima.
  21. Fare clic su "OK" e riavviare il Server SQL
  22. Si dovrebbe ora essere in grado di accedere come "sa" utilizzando la nuova password che è stata impostata nel passo 12.
+0

questa risposta ha funzionato perfettamente per me. grazie! – Francisc0

+0

Grazie mille !!! – JATMON

+1

Funziona anche per Sql Server 2008 R2 Enterprise. Grazie! – Edo

2

In SSMS 2012 , è necessario utilizzare:

Per abilitare la modalità utente singolo, nelle proprietà dell'istanza SQL, NON andare al tag "Avanzamento", esiste già un tag "Parametri di avvio".

  1. Aggiungi "-m;" in parametri;
  2. Riavviare il servizio e accedere a questa istanza SQL utilizzando l'autenticazione di Windows;
  3. I passaggi rimanenti sono gli stessi indicati sopra. Cambia l'autorizzazione dell'account utente Windows in sicurezza o ripristina la password dell'account SA.
  4. Infine, rimuovere il parametro "-m" da "parametri di avvio";
0

Ho 2 account sul mio computer Windows e ho riscontrato questo problema con uno di loro. Non volevo utilizzare l'account sa, volevo utilizzare l'accesso a Windows. Non è stato immediatamente ovvio per me che avevo bisogno di firmare semplicemente nell'altro conto che ho usato per installare SQL Server e aggiungere le autorizzazioni per il nuovo account da lì

(SSMS > Security > Logins > Add a login there)

Modo semplice di ottenere il pieno il nome di dominio che devi aggiungere è aperto cmd echo ognuno.

echo %userdomain%\%username% 

Aggiungi un account di accesso per l'utente e dargli tutte le permissons per Master db e altri database che si desidera. Quando dico "tutti i permessi", assicurati di NON controllare le autorizzazioni di "negazione" poiché ciò farà il contrario.

1

Ho seguito i passaggi nella risposta di killthrush e con mia sorpresa non ha funzionato. Effettuando l'accesso come se avessi potuto vedere il mio utente di dominio Windows e averli resi un amministratore di sistema, ma quando ho provato ad accedere con l'autenticazione di Windows non sono riuscito a vedere il mio login sotto login, non ho potuto creare database, ecc. Poi mi ha colpito. Il login era probabilmente collegato a un altro account di dominio con lo stesso nome (con qualche tipo di ID interno/nascosto che non era corretto). Ho lasciato questa organizzazione qualche tempo fa e poi sono tornato mesi dopo. Invece di riattivare il mio vecchio account (che avrebbero potuto eliminare) hanno creato un nuovo account con lo stesso dominio \ nome utente e un nuovo ID interno. Usando sa ho cancellato il mio vecchio login, lo ho aggiunto nuovamente con lo stesso nome e ho aggiunto sysadmin. Ho effettuato il login con Windows Auth e tutto sembra come dovrebbe. Ora posso vedere i miei login (e altri) e posso fare tutto ciò che devo fare come amministratore di sistema utilizzando il mio login di autenticazione di Windows.

+0

Un buon punto per quanto riguarda gli account di dominio, probabilmente un SID diverso sotto il cofano. Per verificare questo tipo di cose, è possibile utilizzare PowerShell senza troppi problemi: http://windowsitpro.com/windows-server/find-sid-account-using-powershell – killthrush

Problemi correlati