有某個大系統,如果User有帳號,又有SSMS,
如果User不想從系統登入,直接用SSMS給你溜進來,
這樣竟然也是可以,這是世界知名大廠的設定嗎??
阿知,那個系統我又不熟,也沒安裝過,
不過既然有人想先把這個洞補起來,那就只好想想辦法.....
建立一個SERVER LEVEL的Trigger,
不是可以用SSMS的帳號,就拒絕,此時SSMS會出現錯誤,並把這個User帳號記錄起來,
千萬小心設定可以使用SSMS的帳號,不要所有帳號都無法連線了.....
CREATE TRIGGER [triGet_TRY_LOGIN]
ON ALL SERVER FOR LOGON
AS
BEGIN
--The user use SSMS to login and this login_id isn't in allow list
IF ((APP_NAME() LIKE '%Microsoft SQL Server Management Studio%')
AND (SYSTEM_USER <> 'Domain\UserName')) --Administrator Account or SA can use SSMS login
BEGIN
--Use ROLLBACK command to refused login
ROLLBACK
--Log user's login_id
INSERT INTO [db_test].[dbo].[SERVER_LOGIN_LOG](LOGIN_ID, LOGIN_TIME) --log user in table
VALUES (SYSTEM_USER, GETDATE())
END
END
GO
--If make some mistakes, use this command to drop trigger
--DROP TRIGGER triGet_TRY_LOGIN ON ALL SERVER