PRB: Ошибка 1314 возникает по xp_cmdshell при выполнены как для пользователя SA не

Переводы статьи Переводы статьи
Код статьи: 248391 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

Появляется следующее сообщение об ошибке при выполнении задания операционной системы через xp_cmdshell после входа в SQL Server в качестве учетной записи без учетной записи sa.
Сообщение 50001, уровень 1, состояние 50001
xpsql.c: ошибка 1314 от метода LogonUser строке 476
Кроме того может появиться следующее:
Сообщение 50001, уровень 1, состояние 50001
xpsql.c: ошибка 1314 из CreateProcessAsUser строке 492

Причина

Эти ошибки возникают в соответствии с их прав на учетной записи SQLAgentCmdExec Windows NT, MSSQLServer выполняется.

Временное решение

Убедитесь, что учетная запись Windows NT, Служба MSSQLServer выполняется на учетную запись домена, являющийся членом группы локальных администраторов на сервере.

Убедитесь, что следующие разрешения прав пользователя учетной записи службы MSSQLServer выполняется, а также SQLServerAgent:
  • Работа в режиме операционной системы.
  • Увеличение квот.
  • Замена маркера уровня процесса.
  • Вход в качестве пакетного задания.
Кроме того убедитесь, что локальная учетная запись SQLAgentCmdExec правами «Вход в качестве пакетного задания».

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

Дополнительная информация

Xpsql.c включен в пример кода, который поставляется вместе с продуктом. Ошибка в строке 476 получает возникает при вызове функции Win32 API:LogonUser()не удается. Ошибка в 492 получает возникает при сбое вызова CreateProcessAsUser().

Ошибка 1314 — ERROR_PRIVILEGE_NOT_HELD. Это означает, что учетная запись, вызов этих функций не имеет достаточные права для выполнения входа в систему. Отсюда многие заказчики сбросить права учетной записи для учетной записи SQLAgentCmdExec или создайте его заново через диспетчер пользователей или SQL Enterprise Manager.

Тем не менее вызывает эти ошибки — это процесс, который вызывает API-вызовов (Sqlservr.exe). Therefore, it is the account that the MSSQLServer service is running on that holds the incorrect and insufficient privileges. In order to successfully executeLogonUser(), the MSSQLServer account needs to have the SE_TCB_NAME (Act as part of the operating system) right enabled. In order to successfully execute CreateProcessAsUser(), the MSSQLServer account needs to have the SE_INCREASE_QUOTA_NAME (Increase quotas) rights enabled.

Примечание.: For certain types of processes, CreateProcessAsUser() may also require SE_ASSIGNPRIMARYTOKEN_NAME (Replace a process level token) to be turned on.

Свойства

Код статьи: 248391 - Последний отзыв: 18 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Ключевые слова: 
kbbug kbprb kbmt KB248391 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:248391

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com