Risposte:
SQL Server 2008 e versioni successive:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
Solo per un utente (non un ruolo):
USE [DBName]
GO
GRANT EXECUTE TO [user]
user
potresti dover essere racchiuso tra parentesi quadre. Questo era vero nel mio caso d'uso almeno in parte perché il mio utente aveva un dominio collegato (cioè aveva un carattere \ in esso). modifica: risolto carattere barra senza
SQL Server 2005 ha introdotto la possibilità di concedere autorizzazioni di esecuzione del database a un principio del database, come descritto:
GRANT EXECUTE TO [MyDomain\MyUser]
Ciò garantirà l'autorizzazione nell'ambito del database, che include implicitamente tutte le procedure memorizzate in tutti gli schemi. Ciò significa che non è necessario concedere esplicitamente le autorizzazioni per procedura memorizzata.
Puoi anche limitare concedendo autorizzazioni di esecuzione dello schema se vuoi essere più granulare:
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
Oltre alle risposte sopra, vorrei aggiungere:
È possibile che si desideri concedere questo a un ruolo e quindi assegnare il ruolo all'utente. Supponiamo di aver creato un ruolo myAppRights
tramite
CREATE ROLE [myAppRights]
allora puoi dare i diritti di esecuzione tramite
GRANT EXECUTE TO [myAppRights]
a quel ruolo.
Oppure, se vuoi farlo a livello di schema:
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
funziona anche (in questo esempio, il ruolo myAppRights
avrà diritti di esecuzione su tutti gli elementi dello schema in dbo
seguito).
In questo modo, devi farlo una sola volta e puoi assegnare / revocare facilmente tutti i diritti relativi alle applicazioni a / da un utente se devi modificarli in seguito - particolarmente utile se vuoi creare profili di accesso più complessi.
Nota: se concedi un ruolo a uno schema, ciò influisce anche sugli elementi che avrai creato in seguito - questo potrebbe essere utile o no a seconda del design che intendi, quindi tienilo a mente.
CONCESSIONE ESEGUITA A [RUOLO]
Questo sicuramente aiuta