>Grazie, sono riuscito grazie ai tuoi link a fare quello che volevo.
>Alla fine ho però messo in datareader l'utente. Il problema è
>che così l'utente non riesce a vedere le stored procedure del
>db.
Occhio che "vederle" non significa avere i permessi per eseguirle!
Per garantire l'esecuzione di una sp ad un certo User Account devi eseguire il comando GRANT specificando il permesso di EXECUTE su OGNI stored procedure.
Volendo puoi far generare i comandi direttamente a SQL Server con una query simile a:
SELECT
N'GRANT EXECUTE ON OBJECT::' +
SCHEMA_NAME(schema_id) +
N'.' + name +
N' TO Lorenzo;'
FROM sys.procedures;
Dove Lorenzo è il tuo User Account. A questo punto copia l'output generato ed eseguilo in una nuova finestra di query.
>Come posso evitare questo?
>Quale object_name hanno le stored procedur di un db?Esiste un
>elenco degli object_name di un db a cui fare riferimento?Non
>ho trovato nulla in rete di preciso...
Sui Books Online trovi tutte le risposte
http://msdn.microsoft.com/en-us/library/ms188371.aspx
http://msdn.microsoft.com/en-us/library/ms188737.aspx
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org