Na serveru SQL Server můžete použít spouštěč přihlášení k auditu a řízení relací serveru, jako je sledování aktivity přihlášení, omezení přihlášení k serveru SQL Server nebo omezení počtu relací pro konkrétní přihlášení.
Tento článek poskytuje příklad použití spouštěče přihlášení k omezení počtu současných relací pro konkrétní přihlášení.
Příklad
Zde je příklad spouštěče přihlášení, který omezuje počet současných relací pro konkrétní přihlášení na 1.
Vytvořte přihlašovací jméno:
CREATE LOGIN Marge WITH PASSWORD = 'SQLServer123';
GRANT VIEW SERVER STATE TO Marge;
Vytvořte spouštěč přihlášení:
CREATE TRIGGER trg_limit_concurrent_sessions
ON ALL SERVER WITH EXECUTE AS 'Marge'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN() = 'Marge' AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND
original_login_name = 'Marge') > 1
ROLLBACK;
END;
Nyní, když se tento uživatel pokusí přihlásit na druhé připojení, měla by se zobrazit následující chyba:
Error message: Logon failed for login 'Marge' due to trigger execution. Changed database context to 'master'. Changed language setting to us_english.
Upozorňujeme, že všechny zprávy pocházející ze spouštěče, které se obvykle dostanou k uživateli, jako jsou chybové zprávy a zprávy z PRINT
příkazu, jsou přesměrovány do protokolu chyb serveru SQL Server.
Přihlašovací spouštěče se také nespustí, pokud se ověření nezdaří.