sql-server: как узнать кто в моей базе данных? - PullRequest
2 голосов
/ 22 октября 2010

У меня есть интерфейс доступа и серверная часть SQL.Я хотел бы знать, какие пользователи в настоящее время используют базу данных.это можно сделать с помощью доступа или sql-сервера?

Ответы [ 4 ]

16 голосов
/ 22 октября 2010

В SQL Server вы можете запустить эту хранимую процедуру:

sp_who2

EDIT:

Вы можете использовать этот запрос, если хотите узнать, кто использует ваш сервер в любой момент времени. Это позволит вам дополнительно фильтровать по желанию.

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
5 голосов
/ 22 октября 2010

Для SQL Server вы можете попробовать

SELECT * 
FROM sys.dm_exec_sessions

, в котором будут перечислены все открытые сеансы

2 голосов
/ 22 октября 2010

Это полностью зависит от того, как безопасность и доступ к SQL Server реализованы в вашей базе данных доступа.

. Если для всех пользователей используется бэкэнд sql (который является общим), то для всех пользователей используется единый логин SQL Server, то естьнет способа узнать.

1 голос
/ 22 октября 2010

1) Вы, разработчик, должны иметь разрешения VIEW SERVER STATE на SQL Server, чтобы видеть все выполняющиеся сеансы на экземпляре SQL Server. В противном случае вы увидите только текущий сеанс. Самый простой способ - открыть соединение (т. Е. С помощью sqlcmd или Management Studio), используя свои учетные данные sysadmin, и выполнить следующую инструкцию:

GRANT VIEW SERVER STATE TO (идентификатор вашей сети)

2) Похоже, что Access отключается от SQL Server после пяти или десяти минут бездействия. У меня еще не было времени, чтобы выполнить подробный поиск и выяснить, какие настройки, если таковые имеются, могут переопределить это.

3) Разработчики, использующие инструменты SQL Server, могут подключаться к базе данных master, даже если они смотрят на объекты в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...