MSSQL high availability çözümlerinden en çok kullanılan alwayson da bir sunucuya kullanıcı oluşturulduğundan diğer tarafta oluşturulmayacaktır. Aşağıdaki komut yardımı ile primary de oluşturulan kullanıcıyı diğer tarafa otomatik olarak oluşturabilirsiniz.
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [ddl_login_pswd]
ON ALL SERVER
FOR ALTER_LOGIN
AS
DECLARE @secondary_script NVARCHAR(MAX)
DECLARE @text NVARCHAR(MAX)= (EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'nvarchar(max)'))
if(@text like '%PASSWORD%')
BEGIN
DECLARE @LoginName NVARCHAR(1000)=(EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]', 'nvarchar(100)'))
DECLARE @Password NVARCHAR(512)=(select sys.fn_varbintohexstr((SELECT password_hash FROM sys.sql_logins WHERE name=@LoginName)))
SET @secondary_script=CONCAT('EXEC (''ALTER LOGIN ', @LoginName , ' WITH PASSWORD=', @Password , ' HASHED, CHECK_POLICY=OFF'') AT [secondary_sunucu] ')
EXEC sp_Executesql @secondary_script
SET @secondary_script=CONCAT('EXEC (''ALTER LOGIN ', @LoginName ,' WITH CHECK_POLICY=ON'') AT [secondary_sunucu] ')
EXEC sp_Executesql @secondary_script
END
GO
DISABLE TRIGGER [ddl_login_pswd] ON ALL SERVER
GO
272 total views, 1 views today