2012-03-27 2 views
1

Я подключаюсь к своей базе данных с использованием проверки подлинности SQL (не являющейся пользователем) из SQL Server Management Studio. Когда я выполняю следующий запрос, я получаю: «Доступ к удаленному серверу запрещен, потому что не существует сопоставления входа».Ошибка при выполнении запроса с использованием OPENDATASOURCE

Если я подключаюсь к SQL Server Management Studio as sa, запрос выполняется без каких-либо ошибок.

Как выполнить запрос OPENDATASOURCE, подключившись к SQL Server Management Studio в качестве пользователя, не являющегося пользователем в режиме sql, без предоставления имени пользователя и пароля в запросе?

ответ

0

Учетная запись sa будет выполнять OPENDATASOURCE в качестве входа в учетную запись службы Windows. Это одно решение.

EXEC N' 
EXEC OPENDATASOURCE(''SQLNCLI'',''Server=MyServer;Trusted_Connection=yes;'').Database.dbo.myStoredProcedure' 
AS LOGIN = 'sa'; 

Но действительно вы должны настроить свои учетные данные на удаленном сервере. Затем замените доверенное соединение на User ID и Password. Если вы не хотите добавлять идентификатор пользователя и пароль в запрос, установите его как связанный сервер.

http://msdn.microsoft.com/en-us/library/ms179856(v=sql.100).aspx

+0

Примечания: для выполнения, как са вам нужно будет выдавать разрешение или быть сисадмином. –

0

Вы можете создать временный связанный сервер, а затем отпустите его. Это позволит использовать в настоящее время вошла в учетных данных пользователя SQL и при условии того же пользователя существует на другой коробке она должна работать:

exec sp_addlinkedserver @server='MyServer', @srvproduct='SQL Server' 
exec sp_addlinkedsrvlogin @rmtsrvname='MyServer', @locallogin=null, @useself='True' 
exec('exec [MyServer].Database.dbo.myStoredProcedure') 
exec sp_dropserver 'MyServer', 'droplogins' 
Смежные вопросы