Rôles nécessaires à l'exécution de la procédure stockée dans l'authentification SQL Server

J'ai besoin de me connecter à la database SQL Server 2008 R2 à partir d'une application C #. J'ai besoin d'utiliser l'authentification SQL Server pour la connection.

Quels sont les rôles et les schémas requirejs pour l'user afin que l'user puisse créer / exécuter des procédures stockées?

Remarque: Les procédures stockées seront dans le schéma dbo.

Si vous voulez donner plus de détails sur l'atsortingbution de vos droits aux rôles, sous le dossier «Sécurité» (sous la database), vous pouvez configurer vos droits d'exécution pour un proc donné.

c'est-à-dire, dans l'explorateur d'objects du studio de gestion, [Base de données] -> Sécurité -> [YourRole] -> Clic droit pour les propriétés -> section Securables

Ici vous pouvez append des types d'objects spécifiques et leurs permissions et al.

J'espère que cela t'aides.

Les permissions de création et d'exécution des procédures sont documentées sous CREATE PROCEDURE et EXECUTE , respectivement.

Une considération importante est que les users n'ont pas besoin d'permissions sur les objects référencés dans la procédure. Vous pouvez lire ceci dans la documentation, mais il est plus rapide de le tester vous-même:

 create table dbo.TestTable (col1 int) go create procedure dbo.TestProc as select col1 from dbo.TestTable go grant execute on dbo.TestProc to UserWithNoPermissions go execute as user = 'UserWithNoPermissions'; -- this gives error 229 (SELECT permission denied) select * from dbo.TestTable; -- this works execute dbo.TestProc; revert; 

Notez qu'il existe quelques exceptions: le SQL dynamic s'exécute dans sa propre scope, donc si votre procédure l'utilise, l'user exécutant aura en effet besoin d'une autorisation sur les objects sous-jacents.

Cela dépend de l'action effectuée dans votre procédure stockée.

Si vous exécutez simplement des instructions SELECT , le rôle db_datareader doit être adapté à l'exécution de vos procédures stockées. Le db_datawriter est le rôle, qui est éligible pour les créer.