PDA

View Full Version : جلوگيري از تغيير ساعت سرور به دليل فيلدهاي Createdate و ModifyDate



nooshin964
پنج شنبه 11 شهریور 1389, 10:34 صبح
سلام - من براي پيمايش زمان افزودن - ويرايش و حذف ركوردها در جداولم از فيلدهاي CreateDate و ModifyDate استفاده ميكنم. در صورتي كه كاربر بخواهد ساعت سيستم را به عقب برگرداند همه چيز به هم ميريزد. چطور ميتوانم اجازه ادامه كار SQL را بگيرم يا به كاربر اجازه ندهم يا اينكه راه حل بهتر چيست؟

ahmad_eagle2002
پنج شنبه 11 شهریور 1389, 10:57 صبح
سلام

در صورتي كه آخرين تاريخ ثبت شده بزرگتر از تاريخ فعلي بود ، اجازه ثبت اطلاعات را به كاربر ندهيد

nooshin964
پنج شنبه 11 شهریور 1389, 11:20 صبح
استفاده از تريگر براي اين كار باعث كندي بيش از حد ميشود . لطفا راه حل ديگري ارائه بفرماييد.

nooshin964
شنبه 13 شهریور 1389, 10:45 صبح
دوستان محترم - كسي نظري نداره؟
براي من حياتي است.

ahmad_eagle2002
شنبه 13 شهریور 1389, 14:22 عصر
چرا در sp insert كنترل نمي كنيد

بهزادصادقی
شنبه 13 شهریور 1389, 14:26 عصر
یک سوال:

برای ثبت زمان حاضر در ستون های CreateDate و ModifyDate شما دقیقا از چه روشی استفاده می کنید؟

علت اینکه می پرسم این است که برای ثبت زمان، شما حداقل سه رویکرد مختلف دارید که می توانید ازشان استفاده نمائید.

الف. اجازه بدهید زمان را خود SQL Server با استفاده از تابع getdate از روی کامپیوتر سرور بخواند. به این می گیم راه سرور.

ب. اجازه دهید که برنامه client شما زمان را از خود کامپیوتری که برنامه client در آن اجرا می شود بخواند و آن را وارد جدول شما کند. به این می گیم راه client.

ج. از هر راه سوم، که من به آن راه دستی خواهم گفت، استفاده کنید.

اگر شما از یک راه دستی یا از راه client استفاده می کنید، کار شما دشوار خواهد بود. ولی اگر از راه سرور استفاده می کنید من فکر می کنم که قاعدتا مسئله قابل حل می تواند باشد. چرا که، شما می توانید دسترسی کاربران به تنظیم ساعت سرور را از آنها بگیرید. صرفا چون کاربران دارند با یک SQL Server کار می کنند، این باعث نمی شود که آنها به خود آن سرور دسترسی خاصی داشته باشند. تا آنحا که من می دانم، SQL Server خودش دستوری برای تنظیم ساعت کامپیوتری که در محیط آن در حال اجرا است را ندارد. پس کاربران SQL Server قاعدتا نباید توانایی تغییر ساعت سرور را داشته باشند، مگر اینکه مدیر شبکه به آنها آن دسترسی را هم داده است. اگر شما بتوانید آن دسترسی را از ایشان بگیرید، آن وقت هیچ کس به غیر از مدیر شبکه نمی تواند تاریخ سرور را عوض کند.

علیرضا حسن زاده
شنبه 13 شهریور 1389, 15:00 عصر
البته اینم به گفته های دوستمون اضافه کنم که اگه از Sp استفاده کنی کاربرا تا حد خیلی زیادی نمیتونن ساعت سرور رو با خود SQL تغییر بدن ولی از دستورات SQL با روش های ساده استفاده کنی امکان تغییر ساعات برای کاربرای حرفه ای وجود داره

nooshin964
سه شنبه 16 شهریور 1389, 11:42 صبح
حتي خود مدير هم نبايد بتواند ساعت را به عقب برگرداند. يا اينكه برنامه اي ساعت را به عقب كشيد اجازه كار داده نشود