2009-11-12 7 views
-1

Quelle est la commande/syntaxe t-sql pour refuser l'exécution des autorisations à TOUT LE MONDE sauf les procédures stockées sur dbo? Je veux accorder l'exécution aux rôles et les utilisateurs hériteront alors des droits basés sur les rôles auxquels ils appartiennent. en tant que tel, je veux que les nouveaux utilisateurs se voient refuser l'exécution sur toutes les procédures stockées que je crée.T-SQL DENY EXECUTE

grâce

désolé - je dois mentionner que je l'ai fait pour une base de données déjà. J'essaye de créer la DB encore mais semble avoir oublié le code sur la façon dont je l'ai fait.

Je pensais que c'était sonmethign comme "deny execute to all"?

Répondre

0

Si vous leur refusez explicitement des autorisations sur ces objets, les ajouter à un rôle qui peut les exécuter ne fonctionnera pas - DENY a la priorité. Par défaut, aucun utilisateur n'est autorisé à exécuter une procédure stockée - l'autorisation doit être explicitement accordée à l'utilisateur ou au rôle auquel il appartient. Avez-vous vraiment besoin de plus que la valeur par défaut?

+0

la subvention sera accordée aux rôles. J'ai juste besoin d'avoir la faute à refuser d'exécuter. tout est via des procédures stockées et la sécurité est basée sur l'accès via les rôles actuellement, si je dépose une procédure stockée et la recréer (au lieu de modifier), même en tant que dbo, je ne peux pas l'exécuter à moins d'un rôle subvention exécute via le rôle. sur le nouveau DB, il ne semble pas fonctionner le même. – azad

+0

Un DENY explicite les empêchera d'exécuter la procédure stockée, indépendamment des autorisations de tout rôle auquel ils appartiennent (à moins qu'ils ne soient également un propriétaire db). La valeur par défaut (c'est-à-dire aucun ensemble d'autorisations) ne leur permettra pas d'exécuter les procédures stockées. – MartW