반응형

/**********************************************************************************************
-- Title : [2k5] 연결된 서버의 로그인 보안 컨텍스트 설정 및 확인
-- Reference : dbRang.com
-- Key word : 보안 컨텍스트 sp_dropserver sp_helplinkedsrvlogin sp_addlinkedsrvlogin
                     연결된 서버 연결된서버 linkedserver linked server
**********************************************************************************************/

-- 연결된 서버 및 원격 사용자 동시 제거
EXEC sp_dropserver 'linked_an2', droplogins

-- 원격 사용자 확인
EXEC sp_helplinkedsrvlogin

-- 연결된 서버 등록
EXEC sp_addlinkedserver
     @server = 'linked_an2'
,    @srvproduct = ''
,    @provider = 'SQLOLEDB'
,    @datasrc = 's_an2'
,    @catalog = ''

-- 원격 사용자 확인
-- sp_addlinkedserver 실행하면 자동으로 Is Self Mapping이 1이 된다.
-- 즉, 현재 로그인된 보안 컨텍스트를 사용.
EXEC sp_helplinkedsrvlogin

-- Is Self Mapping을 0으로 설정
-- 이는, 보안 컨텍스트 없이 연결과 동일.
EXEC sp_addlinkedsrvlogin
     @rmtsrvname = 'linked_an2'
,    @locallogin = NULL
,    @useself = 'False'

-- 원격 사용자 확인
EXEC sp_helplinkedsrvlogin

-- Is Self Mapping을 1로 설정(sp_addlinkedserver 최초 사용했다 가정시)
EXEC sp_addlinkedsrvlogin
     @rmtsrvname = 'linked_an2'
,    @locallogin = NULL
,    @useself = 'True'

-- 원격 사용자 확인
EXEC sp_helplinkedsrvlogin

-- 로컬 사용자(user3)와 원격 사용자(user1) 지정
EXEC sp_addlinkedsrvlogin
     @rmtsrvname = 'linked_an2'
,    @useself = false
,    @locallogin ='user3'
,    @rmtuser = 'user1'
,    @rmtpassword = 'user11'

-- 원격 사용자 확인
-- Is Self Mapping이 여전히 존재하고
-- 로컬 사용자(user3)와 원격 사용자(user1)이 추가된다.
-- 즉, 2가지 옵션이 동시 적용된다고 보면 된다.
EXEC sp_helplinkedsrvlogin
                                         
-- 모든 로컬 사용자와 원격 사용자(user1) 지정
EXEC sp_addlinkedsrvlogin
     @rmtsrvname = 'linked_an2'
,    @useself = false
,    @locallogin = null  --null로 하면 로컬의 모든 사용자
,    @rmtuser = 'user1'
,    @rmtpassword = 'user11'

-- 원격 사용자 확인
-- locallogin을 null로 하면 모든 사용자를 나타내기에 Is Self Mapping값 1이 없어진다.
EXEC sp_helplinkedsrvlogin

-- 로그인의 현재 보안 컨텍스트를 사용하여 연결
-- 즉,  Is Self Mapping을 1로 설정(sp_addlinkedserver 최초 사용시 default)
--로컬 사용자와 원격 사용자 계정/암호가 모두 같아야 한다.
EXEC sp_addlinkedsrvlogin
     @rmtsrvname = 'linked_an2'
,    @useself = true
,    @locallogin =null

-- 원격 사용자 확인
EXEC sp_helplinkedsrvlogin

-- 연결된 서버 및 원격 사용자 동시 제거
EXEC sp_dropserver 'linked_an2', droplogins
 
/*
-- 로컬 서버 로그인과 원격 서버 로그인의 매핑만 허용하고
-- 위 목록에서 정의되지 않은 로그인에 대한 연결 설정 : "연결 안 함"으로 할 경우.
*/
 
-- 1. 매핑 만들고 난 후,
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'LINKED_UNI2', @locallogin = N'usr_prog', @useself = N'False', @rmtuser = N'usr_prog2', @rmtpassword = N''
GO

-- 2. sp_droplinkedsrvlogin으로 @locallogin=NULL로 세팅해 줘야 한당..(될까? ㅋㅋ)
EXEC master.dbo.sp_droplinkedsrvlogin @rmtsrvname = N'LINKED_UNI2', @locallogin = NULL
GO

 

반응형

+ Recent posts