Utilizzo la versione di SQL Server 2008 Express.Come concedo a un ruolo del database di eseguire le autorizzazioni su uno schema? Che cosa sto facendo di sbagliato?
Ho creato un accesso, utente, ruolo e schema. Ho mappato l'utente al login e assegnato il ruolo all'utente.
Lo schema contiene un numero di tabelle e procedure memorizzate.
Desidero che il ruolo disponga delle autorizzazioni di esecuzione sull'intero schema.
Ho provato a concedere il permesso di esecuzione tramite lo studio di gestione e inserendo il comando in una finestra di query.
GRANT EXEC ON SCHEMA::schema_name TO role_name
ma quando mi collego al database utilizzando Management Studio SQL (come il login ho creato) in primo luogo non riesco a vedere le stored procedure, ma ancora più importante ricevo un errore di autorizzazione negata quando si tenta di eseguirli.
La procedura memorizzata in questione non fa altro che selezionare i dati da una tabella all'interno della stessa scala.
Ho provato a generare la stored procedure con e senza la linea:
WITH EXECUTE AS OWNER
Questo non fa alcuna differenza.
Sospetto di aver commesso un errore durante la creazione del mio schema, o che ci sia un problema di proprietà da qualche parte, ma sto davvero cercando di far funzionare qualcosa.
L'unico modo in cui sono riuscito a eseguire le stored procedure è concedere le autorizzazioni di controllo al ruolo e all'esecuzione, ma non credo che questo sia il modo corretto e sicuro per procedere.
Qualsiasi suggerimento/commento sarebbe molto apprezzato.
Grazie.
Hai concesso autorizzazioni di esecuzione all'utente che hai creato per Sproc? –