كيفية تمكين حسابات غير مسؤول النظام لتنفيذ "xp_cmdshell" توسيع الإجراء المخزن في SQL Server 2000


ملخص


توضح هذه المقالة كيفية تكوين حساب وكيل "عميل SQL Server من" مستوى Microsoft Windows لاستخدامه بواسطة تسجيلات دخول SQL غير الأعضاء
دور مسؤول النظام sysadmin الثابت على الملقم. بالإضافة إلى ذلك، تحتوي هذه المقالة على مراجع لمزيد من المعلومات لمساعدتك على حل المشكلات التي قد تحدث عند محاولة إعداد حساب وكيل.

مقدمة


استدعاء xp_cmdshell توسيع الإجراء المخزن تربيط أوامر Windows من داخل Microsoft SQL Server 2000. عند تنفيذ xp_cmdshell توسيع الإجراء المخزن بعضو دور sysadmin الثابت على الملقم، يتم تشغيل عملية Windows shell الأمر مع سياق أمان Windows حساب الخدمة ل SQL Server. على سبيل المثال، إذا تم تشغيل ملقم SQL ضمن تسجيل دخول Windows لديه حقوق إدارية على الكمبيوتر، سيتلقى المستخدم الذي يقوم بفتح موجه الأوامر باستخدام xp_cmdshell توسيع الإجراء المخزن الوصول إلى Windows كمسؤول محلي. بشكل افتراضي، يتم منح الإذن لتنفيذ xp_cmdshell توسيع الإجراء المخزن فقط إلى أعضاء دور مسؤول النظام sysadmin الثابت على الملقم. يساعد هذا الإذن أي التصعيد للحقوق.

إذا كنت ترغب في بدء عمليات Windows جديدة ذات مستوى المنخفض من الحقوق، يمكنك استخدام حساب وكيل عميل SQL Server لتكوين حساب Windows بمستوى مناسب من الحقوق.

مزيد من المعلومات


عند محاولة تنفيذ xp_cmdshell توسيع الإجراء المخزن من تسجيل دخول SQL Server التي ليست عضوا في دور مسؤول النظام sysadmin الملقم وحساب وكيل عميل SQL Server لم يتم إعداد بشكل صحيح، قد تتلقى رسائل خطأ مشابهة لما يلي:
Msg 50001، المستوى 1 حالة 50001
xpsql.cpp: خطأ 997 من جيتبروكسياككونت على البند 499
Msg 50001، المستوى 1 حالة 50001
xpsql.cpp: خطأ 317 من جيتبروكسياككونت على البند 499
Msg 50001، المستوى 1 حالة 50001

xpsql.cpp: خطأ من جيتبروكسياككونت على البند 499
Msg 50001، المستوى 1 حالة 50001
xpsql.cpp: خطأ 87 من جيتبروكسياككونت على البند 499
إذا كان لديك للسماح للمستخدمين غير مسؤول النظام بتشغيل xp_cmdshell توسيع الإجراء المخزن في SQL Server 2000، يجب تكوين حساب الوكيل وحساب بدء التشغيل SQL Server كعضو من مجموعة "المسؤولين المحليين". عند تنفيذ SQL Server الأوامر للمستخدمين الذين لا يعتبرون أعضاءاً من مسؤول النظام sysadmin دور الملقم ثابتة أو الوظائف، xp_cmdshell توسيع الإجراء المخزن وعميل SQL Server استخدام حساب وكيل. يتم تخزين بيانات اعتماد أمان Windows لحساب الوكيل في قاعدة البيانات السرية مرجع الأمان المحلي (LSA). يمكن Windows المسؤولين فقط الوصول إلى هذه المعلومات. لذلك، إذا لم يكن حساب بدء التشغيل SQL Server عضوا في مجموعة "المسؤولين المحليين"، المستخدم يمكن تخزين أو استرداد بيانات اعتماد أمان Windows لتسجيل الدخول كحساب وكيل، وفشل الإجراء المخزن الموسع xp_cmdshell . ولتمكين المستخدمين غير مسؤول النظام بتشغيل xp_cmdshell توسيع الإجراء المخزن، يجب أن يكون حساب بدء التشغيل SQL Server عضوا في مجموعة "المسؤولين المحليين".

لتكوين حساب وكيل لتسجيلات دخول SQL Server غير الأعضاء مسؤول النظام sysadmin ثابت دور الملقم، استخدم إحدى الطرق التالية.

الطريقة الأولى: إدارة المؤسسة SQL Server استخدام

تكوين حساب Windows

لتعيين حساب Windows لتمكين المستخدمين غير مسؤول النظام لتنفيذ xp_cmdshell توسيع الإجراء المخزن، اتبع الخطوات التالية:
  1. بدء تشغيل إدارة المؤسسة SQL Server.
  2. قم بتوسيع Microsoft SQL Serverفي SQL Server Enterprise Manager، ثم قم بتوسيع مجموعة خادم SQL.
  3. قم بتوسيع مثيل SQL Server الذي تريد إعداد حساب الوكيل.
  4. قم بتوسيع الإدارةوانقر نقراً مزدوجاً فوق عميل SQL Serverثم انقر فوق خصائص.
  5. في مربع الحوار خصائص عميل SQL Server ، انقر فوق علامة التبويب مهمة النظام .
  6. ضمن SysAdmin عدم حساب وكيل خطوة مهمة، انقر لإلغاء تحديد خانة الاختيار فقط المستخدمين الذين لديهم امتيازات مسؤول النظام SysAdmin تنفيذ خطوات مهمة CmdExec وأكتيفيسكريبتينج .
  7. في مربع الحوار حساب وكيل عميل SQL Server، اكتب اسم حساب Windows في المربع اسم المستخدم.
  8. في المربع كلمة المرور ، اكتب كلمة مرور Windows.
  9. في مربع المجال ، اكتب المجال الذي يتم حساب Windows عضو ومن ثم انقر فوق موافق مرتين.

إضافة حساب تسجيل دخول SQL Server

إجراء مخزن الحساب الذي تريد منحة أذونات لتنفيذ xp_cmdshell الموسعة لإضافة تسجيل دخول SQL Server، اتبع الخطوات التالية:
  1. في إدارة SQL Server تحديثها، قم بتوسيع
    الأمان.
  2. في جزء " تسجيل الدخول "، انقر نقراً مزدوجاً فوق حساب تسجيل دخول SQL Server الذي تريد منحة أذونات، ثم انقر فوق
    خصائص.

    ملاحظة: في حالة عدم إضافة الحساب مسبقاً، يمكنك إنشاء حساب Windows وكيل كحساب تسجيل الدخول.
  3. في مربع الحوار خصائص تسجيل الدخول إلى ملقم SQL ، انقر فوق علامة التبويب قاعدة بيانات Access .
  4. في القائمة تحديد قاعدة البيانات التي يمكن الوصول إليها عن طريق تسجيل الدخول هذا ، انقر لتحديد خانة الاختيار السماح لقاعدة البيانات الرئيسية ، ومن ثم انقر فوق موافق.
  5. قم بتوسيع قواعد البيانات، قم بتوسيع
    الرئيسي، ثم انقر فوق توسيع إجراءات مخزنة.
  6. تحديد موقع وثم انقر بالزر الأيمن
    xp_cmdshell توسيع الإجراء المخزن، ومن ثم انقر فوق
    خصائص.
  7. في مربع الحوار خصائص الإجراءات المخزنة الموسعة ، انقر فوق أذونات.
  8. انقر لتحديد خانة الاختيار EXEC ل SQL Server حساب تسجيل الدخول الذي تريد منحة أذونات للتنفيذ، ومن ثم انقر فوق موافق مرتين.

الطريقة الثانية: تشغيل برنامج نصي SQL للعمليات

تشغيل البرنامج النصي SQL للعمليات التالية لتمكين حساب Windows لتنفيذ xp_cmdshell توسيع الإجراء المخزن:
-- Set database to master.
USE master
GO

-- Add a valid Windows account as proxy account.
EXECUTE xp_sqlagent_proxy_account N'SET'
, N'<DomainName>'
, N'<WindowsAccount>'
, N'<WindowsPassword>'
GO
-- Get the proxy account to determine whether it is set up correctly.
EXECUTE xp_sqlagent_proxy_account N'GET'
GO

-- Enable non-system administrators to run the job and to execute xp_cmdshell.
EXECUTE msdb..sp_set_sqlagent_properties @sysadmin_only = 0
GO
ملاحظة: في هذا السيناريو، < اسم المجال > هو المجال الذي يتم حساب Windows عضو.
< ويندووساككونت > هو اسم حساب Windows.
< ويندووسباسوورد > هي كلمة المرور لحساب Windows.

لإضافة تسجيل دخول SQL Server المخزنة الحساب الذي تريد منح الإذن لتنفيذ xp_cmdshell توسيع الإجراء بتشغيل البرنامج النصي SQL للعمليات التالية:
USE master
GO

-- Grant database access to the SQL Server login account that you want to provide access.
EXEC sp_grantdbaccess '<SQLLogin>'
GO

-- Grant execute permission on xp_cmdshell to the SQL Server login account.
GRANT exec ON xp_cmdshell TO <SQLLogin>
GO
ملاحظة: في هذا السيناريو، هو < سقلوجين > تسجيل دخول SQL Server الذي تريد منح الإذن لتنفيذ xp_cmdshell توسيع الإجراء المخزن.

ملاحظة: يتم حساب وكيل حساب Windows تشغيل في سياق الأمان الخاص بها مهام عميل SQL Server أو أوامر سطر الأوامر. عند إعداد حساب Windows لحساب وكيل عميل SQL Server، يجب منح الحساب مستوى Windows "تسجيل الدخول كمهمة دفعية" حق المستخدم.

المراجع


لمزيد من المعلومات حول xp_cmdshell الموسعة المخزنة الإجراء، راجع الموضوع "عبارات SQL Reference" في "كتب SQL Server عبر إنترنت".

لمزيد من المعلومات حول حساب وكيل عميل SQL Server، قم بزيارة مواقع ويب شبكة مطوري Microsoft (MSDN) التالية:لمزيد من المعلومات حول كيفية تعيين الأذونات المناسبة على حساب وكيل، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية تغيير حساب خدمة SQL Server أو SQL Server عامل دون استخدام SQL Enterprise Manager في SQL Server 2000 أو SQL Server Manager تكوين SQL Server 2005 283811