J'essaie d'exécuter une procédure stockée à partir de mon site Web qui désactive un déclencheur. Voici le code pour le déclencheur:Quels sont les droits d'accès qui me manquent sur ma procédure stockée?
CREATE PROCEDURE [dbo].[DisableMyTrigger]
AS
BEGIN
alter table dbo.TableName DISABLE TRIGGER TriggerName
END
J'ai mis aussi les autorisations sur la procédure stockée avec:
Grant Exec on dbo.DisableMyTrigger To DBAccountName
DBAccountName est et a été en mesure d'exécuter d'autres procédures stockées, ainsi que dynamique Instructions SQL sans problème.
Voici le code de ma page CFM:
<cfstoredproc datasource="myDatasource" procedure="DisableMyTrigger" />
Et voici l'erreur que je reçois:
[Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][SQL Native Client][SQL Server]Cannot find the object "TableName" because it does not exist or you do not have permissions.
DBAccountName a accès à Tablename. Cependant, je ne suis pas sûr de la 2ème partie. Je pensais qu'en accordant à cet utilisateur des droits d'exécution sur cette procédure, peu importe ce qu'il y avait dans la procédure. – Jason
@Jason: Avec MS SQL 2000, trois instructions: insérer, mettre à jour et supprimer les droits acquis via le propriétaire du proc stocké par rapport aux droits de la connexion. Pour faire DDL dans une procédure stockée, l'utilisateur appelant le SP avait besoin des droits pour exécuter le DDL. Même TRUNCATE TABLE ne peut pas être exécuté à moins que l'utilisateur n'ait le droit de tronquer la table. –
@Jason: J'ai ajouté une réponse à une autre question qui parle des droits et des procédures stockées. Le message d'erreur pour les autres instructions DDL est similaire à ce que vous obtenez. Voir: http: //stackoverflow.com/questions/1139137/what-are-the-ramifications-of-granting-a-db-user-with-limited-access-execute-perm/1141440#1141440 –