2013-04-16 9 views
20

Sto cercando di aggiungere le autorizzazioni a una procedura Store per un utente che utilizza questa query,Non riesci a trovare l'utente '', perché non esiste o non si dispone dell'autorizzazione

USE [MyDatabaseName] 
GO 

GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName] 
GO 

posso dare i permessi a utente attraverso l'interfaccia theuser ma usando questa query ottengo questo errore,

Impossibile trovare il 'UserName' utente, perché non esiste o non si dispone permesso.

Se non si dispone di autorizzazioni, come è possibile aggiungere autorizzazioni utilizzando l'interfaccia utente.

+0

Sei sicuro esiste il nome utente? Se si tratta di un account di Windows antepone anche il nome di dominio. – Ulises

+0

L'ho inventato e sì il mio utente con quel nome esiste ... – Mathematics

+0

Il messaggio di errore è abbastanza auto-esplicativo - sei connesso come amministratore di sistema o dbo? Il nome utente è errato o non hai le autorizzazioni adeguate. –

risposta

32

Ho appena incontrato lo stesso problema.

Assicurarsi che vi sia un mapping utente per il login nella tabella principale. Non sono richieste iscrizioni ai ruoli del database, basta spuntare "Mappa" per il master del database in "Mappatura utenti" nelle proprietà per l'accesso "Nome utente".

0

È possibile ottenere problemi come questo quando un database è stato ripristinato da un altro server e il GUID dell'utente nel database è diverso da quello del server corrente.

questo sarà ri-link utenti orfani:

USE <database_name>; 
GO 
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
    @LoginName='<login_name>'; 
GO 

Oltre a questo, se l'utente esiste e si dispone dei diritti di sicurezza rilevanti, non v'è alcun motivo per fare quello che non avrebbe funzionato.

2

Ho riscontrato questo problema eppure sono nel gruppo di amministratori locali sul server. Apparentemente se il controllo dell'account utente è attivato, SQL Server Management Studio come amministratore fa un mondo di differenza. Non ho avuto permessi fino a quando non l'ho fatto.

2

Esegui questo:

USE [db_where_you_need_access] 
GO 
CREATE USER [your_user] FOR LOGIN [your_user] 
Problemi correlati