2013-09-25 15 views
6

Utilizzando SQL 2005Non riesci a trovare la chiave simmetrica '', perché non esiste o non si dispone delle autorizzazioni

ho creato un Master Key crittografato da password e poi codificato la chiave master con la chiave master del servizio

Ho quindi creato un ASYMMETRIC_KEY che uso per crittografare il mio SYMMETRIC_KEY. Ho fatto tutto questo usando l'utente SA per SQL e loggato in Windows Server come amministratore del dominio.

Ho un utente nel mio database che dispone solo delle autorizzazioni dbo sul mio database e quindi concedo a quell'utente di eseguire le autorizzazioni su tutte le stored procedure necessarie e inoltre rifiuto la definizione della vista alle stesse stored procedure.

La stored procedure dandomi guaio dove faccio la crittografia è questo qui. Anche questo tutto ha funzionato su SQL2012 nel mio test pc ma ora che sto creando questo sul server di produzione con SQL 2005 e sta fallendo

open symmetric key 
    MYKEY_NAME_SYM decryption by Asymmetric key MYKEY_NAME_ASYM 
    set @ENCRYPTVARIABLE = (select ENCRYPTBYKEY(KEY_GUID('MYKEY_NAME_SYM'), @ENCRYPTCOLUMN))  
close symmetric key MYKEY_NAME_SYM 

L'errore che sto ricevendo è:

Cannot find the symmetric key 'MKEY_NAME_SYM', because it does not exist or you do not have permission. 

Così ho sono indovinando che l'utente sto utilizzando nel mio database non dispone delle autorizzazioni, ma quando provo a concedere le autorizzazioni

GRANT 
VIEW DEFINITION ON SYMMETRIC KEY::MKEY_NAME_SYM TO [myuser] 

ottengo lo stesso errore non riesce a trovare la chiave simmetrica o non ho il permesso S.

+0

ho avuto alcuni problemi con i permessi e Penso che "ALTER MASTER KEY AGGIUNGI LA CODIFICA PER SERVIZIO MASTER KEY" l'abbia risolto. – bhs

+0

Sì, ho eseguito anche questo comando ma sto ancora ricevendo l'errore. Ho la sensazione che abbia qualcosa a che fare con il mio utente del database che ha le autorizzazioni per i miei stored procedure ma non le chiavi. Ma quando provo a concedere le autorizzazioni dell'utente alle mie chiavi di crittografia, dice che non ho le autorizzazioni per farlo e sto usando l'account SA di sql – Jay

+0

Dai un'occhiata a [questo articolo MSDN] (http://technet.microsoft .com/it-it/library/ms179887.aspx). Sono abbastanza sicuro di dover anche RIFERIMENTI ... – bhs

risposta

2

avevo bisogno di passare SQL per utilizzare l'autenticazione di Windows come l'unico utente che ha avuto le autorizzazioni è stato l'utente di dominio \ admin che è l'utente che ho creato con la chiave.

Una volta che sono passato a autenticazione di Windows sono stato poi in grado di concedere le autorizzazioni per le chiavi e tutto era buono

11

Con una scrittura utente amministrativo in console script:

 
    --Grant View 
    GRANT VIEW DEFINITION ON CERTIFICATE::[Certificate_Name] TO [user] 
    GRANT VIEW DEFINITION ON SYMMETRIC KEY::[EncryptionKey_Name] TO [user] 

    --Grant Control 
    GRANT CONTROL ON CERTIFICATE::[Certificate_Name] TO [user] 
Problemi correlati