TMSChangeNotification.RemoveNotificator() удаляет сервисы других пользователей

Обсуждение возникших проблем, предложений и ошибок SDAC компонентов
Ответить
krants
Сообщения: 3
Зарегистрирован: Вт 11 фев 2014 11:18

TMSChangeNotification.RemoveNotificator() удаляет сервисы других пользователей

Сообщение krants » Вт 11 фев 2014 12:30

Добрый день!
метод MSAccess.TMSChangeNotification.RemoveNotificator()
при вызове под не "админ" профилем удаляет активные сервисы других пользователей

Код: Выделить всё

DECLARE @INVALID_SERVICE nvarchar(128);
SET @INVALID_SERVICE = N'SDAC_NS_52';
DECLARE @DROP_STATEMENT nvarchar(300);
WHILE @INVALID_SERVICE <> N''
BEGIN
  SET @DROP_STATEMENT = N'DROP SERVICE ' + @INVALID_SERVICE;
  EXECUTE sp_executesql @DROP_STATEMENT;
  SET @DROP_STATEMENT = N'DROP QUEUE ' + @INVALID_SERVICE + N'_QUEUE';
  EXECUTE sp_executesql @DROP_STATEMENT;
  SET @INVALID_SERVICE = N'';
 Continue; --Пока пришлось перекрыть так!
  SELECT TOP(1) @INVALID_SERVICE = [name] FROM sys.services
  WHERE
    [name] LIKE 'SDAC_NS_%' 
    AND [name] not in (
      SELECT 'SDAC_NS_' + CAST([spid] AS VARCHAR(32)) AS [name] 
      FROM master.dbo.sysprocesses WHERE [spid] >= 0 and spid <= 32767)
END;
примерно разобравшись, причиной является то, что пользователь, с мин. необходимыми для него привилегиями в БД, в отличие от администратора, видит только свои процессы из master.dbo.sysprocesses.
что и приводит к массовому "дропу" сервисов :(

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: TMSChangeNotification.RemoveNotificator() удаляет сервисы других пользователей

Сообщение Alexp » Ср 12 фев 2014 11:14

Добрый день,

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

Ответить