ورود

View Full Version : لاگ گیری کاربران برای ادمین



alireza4474
دوشنبه 24 اسفند 1394, 19:03 عصر
سلام
من میخواستم ادمین از کارایی که بقیه کاربرا انجام میدن با خبر بشه به اینصورت که بگه فلان کاربر فلان سند رو با این مشخصات وارد کرد یا فلان کاربر فلان سند رو با این مشخصات پاک کرد متاسفانه هیچ راهی به ذهنم نمی رسه

ژیار رحیمی
چهارشنبه 26 اسفند 1394, 03:37 صبح
سلام
یه جدول بنام UserLog به دیتابیس اضافه کن که شامل فیلدهای کلید،کد کاربر ،تاریخ و ساعت و فیلد توضیحات.در برنامه هر وقت کاربر سندی حذف ، ویرایش یا درج کرد یک رکورد با توضیحات و کد کاربر جاری در درجدول مذکور درج کن

alireza4474
چهارشنبه 26 اسفند 1394, 12:33 عصر
اول از همه باید بگم که ممنونم جناب رحیمی کاشکی میتونستم زحماتی که این چند وقت بهتون دادم و سوالهای پیش پا افتاده ای که کردم جبران کنم

و با عرض شرمندگی باید عرض کنم خب کار هایی که روی دیتا بیس انجام میشه زیادن مثلا وقتی از توی پایگاه داده یه سند پاک بشه چجوری بگم فلان سند با فلان مشخصات پاک شده چون مشخصات هم پاک شده. حالا اگه مشخصات سند رو هم توی اون جدولی که گفتین ذخیره کنم یه مشکلی هست اینکه سند ها یا موجودیت های پایگاه داده زیادن چون فقط یه نوع موجودیت که توی پایگاه داده نیست مثلا موجودیت کالا،دسته کالا،مشتریان ، طلبکاران و..... و اگه بخوام برای برای تک تک موجودیت ها براساس مشخصاتشون یه فرم توضیحات درست کنم( البته اگه چاره ای نباشه مجبورم همین کار رو بکنم) ایا کار دیگه ای هم میشه کرد چاره ی دیگه ای هم دارم؟

ژیار رحیمی
جمعه 28 اسفند 1394, 08:23 صبح
فرمی جهت ورود لازم نیست شما هم در سطح دیتابیس و هم در سطح کد نویسی برنامه میتونی در جدول گفته شده رکوردی رو ثبت کنی.عمل درج در جدول log قبل از چهارعمل اصلی انجام میشود.در سطح دیتابیس هم با استفاده از پروسیجر ها و هم تریگرها قابل پیاده سازیست.اگر روال درج ،ویرایش و یا حذف برای تمام موجودیت ها در دیتابیس پروسیجر نوشتی بهتره در همون سطح دیتابیس اقدام به ثبت log کنی و گر نه بهتره با کدنویسی داخل برنامه انجام بشه.برای تمام موجودیت هایی که گفتی لازمه انجام بشه.

parsdarab
سه شنبه 10 فروردین 1395, 17:23 عصر
سلام

شما با استفاده از cdc هم می توانید تاریخچه تغییرات جدول را نگه داری کنید
اما نکته ای که گفتید را نمیشه انجام داد صرفا فقط تغییرات رکوردها را ثبت میکنه دیگه نمیشه بگه فلان کاربر فلان رکورد را پاک کرد

برای فعال کردن cdc مراحل زیر را انجام دهید

ابتدا باید cdc را روی بانک اطلاعاتی فعال کنید.
نمایش بانک اطلاعاتی که cdc روی آنها فعال شده است
SELECT [name], database_id, is_cdc_enabled
FROM sys.databases


دستور زیر cdc روی بانک اطلاعاتی جاری فعال میکنه

EXEC sys.sp_cdc_enable_db

بعد باید cdc را روی جدول فعال کنید
نمایش اینکه cdc روی کدام جدول فعال است

SELECT [name], is_tracked_by_cdc
FROM sys.tables

فعال کردن cdc روی جدول
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'BaseCity',
@role_name = NULL




بعد از اجرای دستور زیر یک جدول ساخته میشه که در قسمت system tables وجود دارد

select * from cdc.dbo_BaseCity_CT

139779

hamid_hr
یک شنبه 23 خرداد 1395, 15:53 عصر
سلام

شما با استفاده از cdc هم می توانید تاریخچه تغییرات جدول را نگه داری کنید
اما نکته ای که گفتید را نمیشه انجام داد صرفا فقط تغییرات رکوردها را ثبت میکنه دیگه نمیشه بگه فلان کاربر فلان رکورد را پاک کرد

برای فعال کردن cdc مراحل زیر را انجام دهید

ابتدا باید cdc را روی بانک اطلاعاتی فعال کنید.
نمایش بانک اطلاعاتی که cdc روی آنها فعال شده است
SELECT [name], database_id, is_cdc_enabled
FROM sys.databases


دستور زیر cdc روی بانک اطلاعاتی جاری فعال میکنه

EXEC sys.sp_cdc_enable_db

بعد باید cdc را روی جدول فعال کنید
نمایش اینکه cdc روی کدام جدول فعال است

SELECT [name], is_tracked_by_cdc
FROM sys.tables

فعال کردن cdc روی جدول
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'BaseCity',
@role_name = NULL




بعد از اجرای دستور زیر یک جدول ساخته میشه که در قسمت system tables وجود دارد

select * from cdc.dbo_BaseCity_CT

139779

من این مراحل رو رفتم
این خطا رو میده

Msg 22832, Level 16, State 1, Procedure sp_cdc_enable_table_internal, Line 623Could not update the metadata that indicates table [dbo].[tbl2] is enabled for Change Data Capture. The failure occurred when executing the command '[sys].[sp_cdc_add_job] @job_type = N'capture''. The error returned was 22836: 'Could not update the metadata for database Temp to indicate that a Change Data Capture job has been added. The failure occurred when executing the command 'sp_add_jobstep_internal'. The error returned was 14234: 'The specified '@server' is invalid (valid values are returned by sp_helpserver).'. Use the action and error to determine the cause of the failure and resubmit the request.'. Use the action and error to determine the cause of the failure and resubmit the request.