Sunucu tabanlı bir ağa bağlı Excel Spread sayfasını kaydeden kullanıcıların bir tür geçmişini görüntülemek mümkün mü?


0

Bir sunucuya kaydedilen bir excel forma sayfam var, buna erişim açısından, klasöre izinleri olan sadece 20 kişi var, her ne olursa olsun, önceki Değiştiricinin ötesinde bir değişiklik geçmişini görüntülemek için her kim var?


Bize kurulumunuz hakkında daha fazla şey anlatmanız gerekecek. Ne tür bir sunucu? Elektronik tablo nasıl indirilir ve yüklenir? Editörler sunucuyu nasıl doğrular? Tüm bu bilgilerle , Süper Kullanıcıya sormalısınız , çünkü sorunuz bir güvenlik hedefi yerine işlevsel bir gereksinimi başarmakla ilgili.
Gilles,

@Gilles burada bir denetim günlüğü unsuru olabilir , ancak bunun eksik bilgilerin bir kısmı olduğu konusunda hemfikirim (ve muhtemelen aradığı şey olsa bile, bunun iyi bir çözüm olmadığı - ama bu hala ontopik olurdu) ....)
37'de AviD

Yanıtlar:


2

Çoğu "sunucu" dosya düzeyinde denetime izin verir, ancak bu her sunucuya özel ve her dosya sistemine özeldir. Bu denetim günlükleri, aradığınız bilgileri içerebilir, ancak günlük kaydı etkinleştirilmemişse, geriye dönük olarak elde edebileceğiniz fazla bir şey yoktur.

"Sunucuları" tırnak işaretleri içine almamın nedeni, NAS tabanlı bir Windows tabanlı sunucuya bağlanan NTFS istemcileri için farklı özelliklerin mevcut olmasıdır. Yani Linux tabanlı değişkenler, Windows tabanlı dosya sunucularından farklı miktarda denetim ayrıntı dereceleri içerebilir.


0

Dosyaya biraz VBA ekleyebilir ve kaydetme üzerinde çalışacak şekilde ayarlayabilirsiniz. Bu "log" adlı bir çalışma sayfasına yazar. Bunu ThisWorkbookmodüle ekleyin . Elektronik tablonun bir .xlsm olarak kaydedildiğinden ve kullanıcıların makroların etkin olduğundan emin olmanız gerekir.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim CurrentUser As String
Dim CurrentDttm As Date

CurrentUser = Application.UserName
CurrentDttm = Format(Now, "yyyy/mm/dd hh:mm")

LastRowWithData = Sheets("log").Range("A1").End(xlDown).Row

If LastRowWithData > 65000 Then
    LastRowWithData = 1
End If

Sheets("log").Range("A" & LastRowWithData + 1).Value = CurrentDttm
Sheets("log").Range("B" & LastRowWithData + 1).Value = CurrentUser

End Sub
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.