Ich habe ein access-frontend und ein sql-server-backend. ich möchte wissen, welche benutzer derzeit die datenbank nutzen. ist dies möglich, mit access oder sql-server zu tun?
Antworten
Zu viele Anzeigen?In SQL Server können Sie diese gespeicherte Prozedur ausführen:
sp_who2
EDIT:
Sie können diese Abfrage verwenden, wenn Sie sehen möchten, wer Ihren Server zu einem bestimmten Zeitpunkt benutzt. So können Sie nach Belieben weiter filtern.
SELECT
SessionId = ses.session_id
,[Database] = DB_Name(er.database_id)
,[Login] = ses.login_name
,Host = ses.host_name
,StartTime = er.start_time
,ClientAddress = con.client_net_address
,SQLStatement = st.text
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con ON con.session_id = ses.session_id
WHERE ses.is_user_process = 0x1
AND ses.session_id != @@SPID
ORDER BY
ses.session_id
1) Sie, der Entwickler, müssen über die Berechtigung VIEW SERVER STATE auf dem SQL Server verfügen, um alle ausgeführten Sitzungen auf der Instanz des SQL Servers zu sehen. Andernfalls sehen Sie nur Ihre aktuelle Sitzung. Am einfachsten ist es, eine Verbindung (z. B. mit sqlcmd oder Management Studio) mit Ihren Sysadmin-Zugangsdaten zu öffnen und die folgende Anweisung einzugeben:
GRANT VIEW SERVER STATE TO (Ihre Netzwerk-Benutzerkennung)
2) Access scheint die Verbindung zu SQL Server nach fünf oder zehn Minuten Inaktivität zu trennen. Ich hatte noch nicht die Zeit, eine detaillierte Suche durchzuführen und herauszufinden, welche Einstellung, wenn überhaupt, dies außer Kraft setzen kann.
3) Entwickler, die SQL Server-Tools verwenden, können mit der Master-Datenbank verbunden sein, obwohl sie Objekte in der Datendatenbank betrachten.