Ограничение одновременных подключений к базе данных с помощью учетной записи пользователя SQL Server
Я хотел бы создать учетную запись пользователя SQL Server 2005, но ограничить этого пользователя, чтобы позволить ему иметь только два одновременных подключения к базе данных одновременно. Есть ли способ сделать это через конфигурацию SQL Server?
1 ответ
Решение
Вы можете попробовать триггеры входа в систему: http://technet.microsoft.com/en-us/library/bb326598.aspx
TechNet предполагает, что:
Вы можете использовать триггеры входа в систему для аудита и контроля сеансов сервера, например, отслеживая активность входа в систему, ограничивая входы в SQL Server или ограничивая количество сеансов для определенного входа.
Их первый пример кода ограничивает пользователя 3-мя подключениями (цитирует TechNet):
USE master;
GO
CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE,
CHECK_EXPIRATION = ON;
GO
GRANT VIEW SERVER STATE TO login_test;
GO
CREATE TRIGGER connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'login_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'login_test' AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND
original_login_name = 'login_test') > 3
ROLLBACK;
END;