我们这时要设计登录触发器来进行限制。
举例:
如果登录名login_test已经创建了一个用户会话,登录触发器将拒绝由该登录名启动的SQL Server登录尝试。
USE master --只有在master 数据库才可以对登录名赋权
GO
CREATE LOGIN login_test WITH PASSWORD=‘123456‘; --创建一个用户
GO
GRANT VIEW SERVER STATE TO login_test; --赋权
GO
ALTER TRIGGER connection_limit_trigger --创建触发器
ON ALL SERVER WITH EXECUTE AS ‘login_test‘
FOR LOGON
AS
BEGIN
--如果当前登录名等于login_test 同时连接数超出。
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;