Hikvision HCNetSDK Ошибка 2: NET_DVR_NOENOUGHPRI — нет прав доступа
- Функции управления PTZ (
NET_DVR_PTZControl), экспорта архива или изменения параметров возвращаютFALSEс кодом ошибки2. - Авторизация (Login) проходит успешно, но вызов специфических API блокируется ядром устройства.
- Оператор СКУД/VMS не может отправить команду принудительного открытия двери (Door Open).
1. Проверка матрицы прав учетной записи на NVR
Учетная запись может иметь права на просмотр живого видео, но быть ограничена в правах на локальное/удаленное управление:
- Remote Parameters Configuration (Конфигурация параметров);
- Remote PTZ Control (Управление поворотными камерами);
- Remote Manual Recording / Playback (Доступ к архиву конкретных каналов);
- Door Control Permission (Для терминалов СКУД серии DS-K2xxx).
2. Запрос прав текущего пользователя через SDK
NET_DVR_USER_INFO_V30 userInfo = { 0 };
DWORD dwReturned = 0;
BOOL bRet = NET_DVR_GetDVRConfig(lUserID, NET_DVR_GET_USERCFG_V30, 0, &userInfo, sizeof(userInfo), &dwReturned);
if (bRet) {
printf("User Priority: %d\n", userInfo.struUser[0].byPriority);
}3. Проверка прав на уровне конкретных IP-каналов
На многоканальных видеорегистраторах права выдаются поканально (Channel Bitmask). Убедитесь, что в byChannel[32] у пользователя выставлен соответствующий бит для целевой камеры.
4. Повышение привилегий сервисного аккаунта
Назначьте интеграционному пользователю роль Operator с расширенными правами или используйте учетную запись администратора устройства.
Частые вопросы (FAQ)
Почему администратор получает ошибку 2 при вызове некоторых системных команд?
Некоторые методы (например, NET_DVR_HardDiskFormat или обновление прошивки) могут быть заблокированы действующими политиками безопасности или аппаратным переключателем физической защиты от записи.
Как выдать права на управление СКУД дверьми в Hikvision NVR/Access Controller?
В веб-интерфейсе перейдите в User Management -> Edit User и включите права 'Remote Access Control' и 'Door Operation'.
Может ли ошибка 2 быть вызвана одновременным сеансом локального оператора за монитором NVR?
Да, если локальный оператор вошел в меню с монопольным доступом (например, мастер настройки дисков или меню обновления), удаленные вызовы SDK будут отклоняться с кодом 2.
Как проверить права без входа в веб-интерфейс?
Вызовите функцию NET_DVR_GetDeviceAbility с параметром DEVICE_USER_ABILITY для выгрузки полной XML-карты прав текущей сессии.