Какие права доступа мне не хватает в моей хранимой процедуре - PullRequest
1 голос
/ 16 июля 2009

Я пытаюсь запустить хранимую процедуру с моего сайта, которая отключает триггер. Вот код для триггера:

CREATE PROCEDURE [dbo].[DisableMyTrigger]
AS
BEGIN
    alter table dbo.TableName DISABLE TRIGGER TriggerName
END

Я также установил разрешения для хранимой процедуры с помощью:

Grant Exec on dbo.DisableMyTrigger To DBAccountName

DBAccountName является и мог запускать другие хранимые процедуры, а также динамические операторы SQL без проблем.

Вот код с моей страницы CFM:

<cfstoredproc datasource="myDatasource" procedure="DisableMyTrigger" />

И вот ошибка, которую я получаю:

[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.

Ответы [ 3 ]

3 голосов
/ 17 июля 2009

Имеет ли DBAccountName разрешения для TableName? Они могут предоставляться или отзываться отдельно от общей схемы (dbo).

Я не dba, но разрешено ли DBAccountName выполнять операторы DDL? (так что он может делать такие вещи, как отключение триггеров программно)

0 голосов
/ 17 июля 2009

Возможно, вам придется указать базу данных. Я не думаю, что это проблема с разрешениями, я считаю, что просто не могу найти ее в этой базе данных.

0 голосов
/ 16 июля 2009

Это потому, что вы подключены к неправильному каталогу БД (предполагается, что SQL Server). Вы подключены к базе данных, но подключены к каталогу "по умолчанию", который, вероятно, "master"

Я думаю, вы можете поместить что-то в начало вашей процедуры, например:

использовать DBName;

и это соединит вас с соответствующим каталогом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...