PDA

View Full Version : استفاده از دستورهای سیستمی در SQL 2000



حسین محمدی
یک شنبه 21 بهمن 1386, 19:35 عصر
در یک سیستم که SQL Server 2000 نصب شده است admin آن سیستم توسط sa در سیستم login می نماید و از طریق SQL می خواهد دستوراتی را در سیستم عامل آن اجرا کند:
مثلا یک یوزر از نوع یوزرهای ویندوز در آن ایجاد کند. (و یا دستورات دیگری را در سیستم عامل اجرا کند !) ولی تنها مجرای اجرای دستورات وی login با sa و استفاده از TSQL است!
آیا چنین کاری شدنی است یا خیر؟


توسط SQL CMD در 2005 چطور؟ می توان چنین کارهایی را انجام داد؟

حمیدرضاصادقیان
یک شنبه 21 بهمن 1386, 21:59 عصر
بله.امکان این کار هست.حتی در داخل osql نیز شما میتوانید این کارها رو بکنید.
sp های سیستمی معمولا با _SP شروع میشوند. اگر در خود BOl فقط بزنید sp تمامی sp های سیستمی رو میتونید ببینید.

Elham_gh
دوشنبه 22 بهمن 1386, 14:33 عصر
در یک سیستم که SQL Server 2000 نصب شده است admin آن سیستم توسط sa در سیستم login می نماید و از طریق SQL می خواهد دستوراتی را در سیستم عامل آن اجرا کند:
مثلا یک یوزر از نوع یوزرهای ویندوز در آن ایجاد کند. (و یا دستورات دیگری را در سیستم عامل اجرا کند !) ولی تنها مجرای اجرای دستورات وی login با sa و استفاده از TSQL است!
آیا چنین کاری شدنی است یا خیر؟


توسط SQL CMD در 2005 چطور؟ می توان چنین کارهایی را انجام داد؟

خیر!امکان پذیر نیست! البته این کار برای sa امکانپذیر نیست. درنهایت sa تنها کابر SQL است. و اعمال محدودیت برای آن هم معقول نیست.

حمیدرضاصادقیان
دوشنبه 22 بهمن 1386, 17:24 عصر
خیر!امکان پذیر نیست! البته این کار برای sa امکانپذیر نیست. درنهایت sa تنها کابر SQL است. و اعمال محدودیت برای آن هم معقول نیست.
سلام.فکر میکنم منظور ایشون اینه که بوسیله یوزر sa بخواهند یوزرهای دیگری در سیستم اضافه کنند یا برای یوزرهای دیگری دسترسی ایجاد کنند.
اگر هم منظورتون اینه که محدودیت روی کاربر sa بخواهید ایجاد کنید حرف elham_gh صحیح می باشد.

reza_rad
سه شنبه 23 بهمن 1386, 10:15 صبح
در یک سیستم که SQL Server 2000 نصب شده است admin آن سیستم توسط sa در سیستم login می نماید و از طریق SQL می خواهد دستوراتی را در سیستم عامل آن اجرا کند:
مثلا یک یوزر از نوع یوزرهای ویندوز در آن ایجاد کند. (و یا دستورات دیگری را در سیستم عامل اجرا کند !) ولی تنها مجرای اجرای دستورات وی login با sa و استفاده از TSQL است!

خیر!امکان پذیر نیست! البته این کار برای sa امکانپذیر نیست. درنهایت sa تنها کابر SQL است. و اعمال محدودیت برای آن هم معقول نیست.
میشه و امکان پذیر هم هست
اما تحت شرایط خاص:
1-باید سیستمی که sql server روش run هست تحت یک account ای که روی دومین هست اجرا بشه.
2- باید اون account ای که sql server قراره تحت اون اجرا بشه روی سیستمی که sql server روش اجرا میشه دسترسی اجرای sql server رو داشته باشه. یا ادمین باشه.
3- باید این account روی شبکه و دومین دسترسی تغییر سیستمی مربوطه رو داشته باشه مثلا ایجاد یا تغییر یوزر ها.
4- در نهایت امکان استفاده از shell کامند تحت sql server برقرار باشه. مثلا امکان استفاده از xp_cmdshell فعال باشه.
با برقرار بودن شرایط بالا تغییر سیستمی مربوطه امکان پذیر هست.


اگر هم منظورتون اینه که محدودیت روی کاربر sa بخواهید ایجاد کنید حرف elham_gh صحیح می باشد.
منظور از اعمال محدودیت برای sa چیه؟

حسین محمدی
سه شنبه 23 بهمن 1386, 18:18 عصر
مثلا فرض کنید من توسط sa در SQL سرور login کرده ام و می خواهم یک یوزر در ویندوز ایجاد کنم که عضو گروه administrator در ویندوز باشد. و می خواهم این کار را با TSQL انجام دهم.

AminSobati
سه شنبه 23 بهمن 1386, 23:22 عصر
لاگین هایی که عضو sysadmin باشند (مثل sa) قابل محدود کردن (در دنیای داخل SQL Server) نیستند. اما برای دسترسی به خارج از SQL Server، به تناسب نوع عملیات مورد نظر، نکات خاصی باید رعایت بشه که در پست شماره 5 اشاره شد. همچنین در SQL Server 2005 با توجه به امکان ساخت Credential، حتی کاربرهای غیر sysadmin هم بصورت کنترل شده میتونن به خارج از SQL Server دسترسی پیدا کنند. بعنوان مثال وقتی یک Login به این شکل ساخته بشه:


create login MyLogin with password='sTrongP@ssword' ,credential=MyCredential

با فرض اینکه MyCredential قبلا توسط دستور CREATE CREDENTIAL ایجاد شده باشه، حالا MyLogin میتونه در محدوده اختیارات MyCredential به خارج از SQL Server دسترسی پیدا کنه.
کاربرانی که sysadmin نیستند، برای استفاده از xp_cmdshell در محدوده xp_cmdshell Proxy Account مجاز به دسترسی هستند