Назад | Перейти на главную страницу

Ограничение одновременных подключений к базе данных учетной записью пользователя SQL Server

Я хотел бы создать учетную запись пользователя SQL Server 2005, но ограничить этого пользователя, чтобы он мог иметь только два одновременных подключения к базе данных одновременно. Есть ли способ сделать это через конфигурацию SQL Server?

Вы можете попробовать триггеры входа: http://technet.microsoft.com/en-us/library/bb326598.aspx

TechNet предлагает следующее:

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

Их первый пример кода ограничивает пользователя тремя подключениями (цитата из 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;