본문 바로가기

운영/고가용성

MS SQL Database Mirroring 후 보조 서버 login 만들기

728x90

Database Mirroring or AlwaysOn 구성 시 동일한 Login User 생성

1) 첫번째 서버에서 Login 계정과 DB User를 생성합니다.

2) 첫번째 서버에서 아래 스크립트를 수행해서 결과값을 복사합니다. 

SELECT 
  'create login [' + p.name + '] ' + 
  case when p.type in('U','G') 
	then 'from windows ' 
	else '' end +
  'with ' +
  case when p.type = 'S' 
	then 'password = ' + 
		master.sys.fn_varbintohexstr(l.password_hash) + 
		' hashed, ' +
		'sid = ' + 
		master.sys.fn_varbintohexstr(l.sid) + 
		', check_expiration = ' + 
  case when l.is_expiration_checked > 0 
	then 'ON, ' 
	else 'OFF, ' end + 
  'check_policy = ' + 
  case when l.is_policy_checked > 0 
	then 'ON, ' 
	else 'OFF, ' end +
  case when l.credential_id > 0 
	then 'credential = ' + 
		c.name + 
		', ' 
	else '' end 
  else '' end +
  'default_database = ' + p.default_database_name +
  case when len(p.default_language_name) > 0 
	then ', default_language = ' 
	+ p.default_language_name 
	else '' end
FROM sys.server_principals p 
LEFT JOIN sys.sql_logins l ON p.principal_id = l.principal_id 
LEFT JOIN sys.credentials c ON  l.credential_id = c.credential_id
WHERE p.type in('S','U','G')
AND p.name <> 'sa'

3) 두번째 서버에서 2)번에서 복사된 결과값을 수행합니다.

728x90