6 Stimmen

sql-server: wie kann ich wissen, wer in meiner Datenbank ist?

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?

24voto

Gabriel McAdams Punkte 54162

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

5voto

mcabral Punkte 3445

Für SQL Server können Sie versuchen

SELECT * 
FROM sys.dm_exec_sessions

die alle offenen Sitzungen auflistet

2voto

Jamie Treworgy Punkte 23448

Dies hängt ganz davon ab, wie die Sicherheit und der Zugriff auf den SQL-Server in Ihrer Access-Datenbank implementiert sind

Wenn ein einziges SQL-Server-Login für alle Benutzer des SQL-Backends verwendet wird (was üblich ist), gibt es keine Möglichkeit, dies herauszufinden.

1voto

Tony Toews Punkte 7760

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X