2012-04-05 1 views
1

한 서버에서 테이블을 읽고 내 하드 드라이브에있는 다른 기존 테이블에 쓰려고 힘든 시간을 보냈습니다 (로컬 ... SQL Server Express를 사용하여 생성).하나의 테이블에서 읽기 (공유)하고 다른 테이블 (로컬)에 쓰기위한 서버 간 SQL 쿼리

그래서

EXEC sp_addlinkedserver [DPS-ABC1DE2\SQLEXPRESS] 

를 사용하려고했습니다

Msg 7202, Level 11, State 2, Line 7
Could not find server 'DPS-ABC1DE2\SQLEXPRESS' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.

하지만 난 받기 :이 프로그램을 실행할 때 나는 다음과 같은 오류 메시지가

insert into [DPS-ABC1DE2\SQLEXPRESS].my_LOCAL_DATABASE.dbo.SHIPMENTS 
select 
    CUST_NUMBER, 
    SHIPMENT_ID, 
    SHIP_DATE, 
    MODE_CODE, 
    MILES, 
    WEIGHT, 
    AMOUNT_PAID 
from SHARED_DATABASE.dbo.SHIPMENTS 
where datepart(year,SHIP_DATE)= 2012 and datepart(month,SHIP_DATE) = 1 

: 여기

내 코드입니다 오류 :

"Msg 15247, Level 16, State 1, Procedure sp_MSaddserver_internal, Line 29
User does not have permission to perform this action."

저는 신인 SQL 프로그래머입니다. 그래서이 문제를 광범위하게 조사해야했지만 성공하지 못했습니다. 어떤 도움을 주시면 감사하겠습니다!

+1

'사용자가이 작업을 "수행 할 수있는 권한이 없습니다 -. 당신은 그와 같은 간단한 충분한 권한을 가지고 있지 않습니다 –

+0

참고로, 서버 간 쿼리는 [이럴 수 있습니다 ] 일관되게 일하기가 극도로 어렵습니다. 확실히 진보 된 주제이고 적어도 신입생이라고 생각하는 한 조심해야합니다. –

답변

1

sp_addlinkedserver sysadmin 및 setupadmin 고정 서버 역할의 구성원에게는 기본적으로 사용 권한이 실행됩니다. 에 정렬 방법은 link입니다.

일단이 문제를 제거하면 다음을 사용하여 다른 서버에 연결하고 로그인 할 수 있습니다. 이 도움이

--add the linked server and then login 
EXEC sp_addlinkedserver 'DPS-ABC1DE2\SQLEXPRESS',N'SQL Server'; 

EXEC sp_addlinkedsrvlogin @rmtsrvname='DPS-ABC1DE2\SQLEXPRESS', 
     @useself='false', 
     @rmtuser='login_username', 
     @rmtpassword='login_password' 

--do your job here      
Insert into [DPS-ABC1DE2\SQLEXPRESS].my_LOCAL_DATABASE.dbo.SHIPMENTS 
Select... 

--drop the linked server login and then drop the server 
EXEC sp_droplinkedsrvlogin 'DPS-ABC1DE2\SQLEXPRESS', NULL 
EXEC sp_dropserver 'DPS-ABC1DE2\SQLEXPRESS', NULL; 

희망 ...

관련 문제