Falls Du nur wissen willst, wer wann die Tabelle geöffnet hat, kannst Du database trigger verwenden. Das ist aus einem meiner Workshops:
Schreib für jedes Öffnen Timestamp, user, tablename mit und werte es entsprechend aus.
Das Beispiel steht so ähnlich auch in der Onlinedoku. Aber da heißt es auch, wenn Caching aktiv ist und die Tabelle mehrfach nacheinander geöffnet wird, wie es
SQL SELECT macht, dann bekommt man damit nur die erste Öffnung mit.
Da gäbs ja auch noch Management-SPs, die die gerade offenen Queries anzeigen mit einer
Query-ID. Wenn man die jede Sekunde aufruft... ist aber auch doof. Die exakte Zahl der Aufrufe kann man vermutlich nur direkt im Programm lösen:
Per GRANT allen betroffenen Usern den direkten SELECT Zugriff auf die Tabelle verbieten.
Dann den Zugriff via SP machen und dort das Logging abhandeln.
Ist aber aufwendig.