#sql #sql-server #sql-server-2008 #stored-procedures #windows-7
#sql #sql-сервер #sql-server-2008 #хранимые процедуры #windows-7
Вопрос:
Мне нужно получить доступ к таблице данных, расположенной на другом сервере (target_server), из хранимой процедуры на одном сервере (server1) SQL server 2008 R2 management studio.
Я добавил целевой сервер:
EXEC sp_addserver 'target_server' , 'DATA ACCESS', TRUE
EXEC sp_serveroption 'target_server' , 'DATA ACCESS', TRUE
Но, когда я запускаю хранимую процедуру для доступа к целевому серверу, я получил эту ошибку:
Login failed for user 'my_login_user_name'.
Пароль целевого сервера отличается от пароля для входа на мой server1. Но я успешно вошел в нее и добавил ее в Management Studio с правильным паролем.
Почему я не могу получить доступ к целевому серверу из хранимой процедуры?
Ответ №1:
sp_addserver немного устарел (в 2008 году, я полагаю, он включен только для обратной совместимости с sql server 2000). Если я не ошибаюсь … используйте комбинацию SP_addlinkedserver (аналогичное использование как sp_addserver) для настройки соединения. (отредактируйте, чтобы добавить…ваш исходный sp_addserver уже должен работать, нет смысла повторять этот шаг, если вы действительно этого не хотите)
Затем используйте SP_addlinkedsrvlogin для определения доступа пользователя:
sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname'
[ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ]
[ , [ @locallogin = ] 'locallogin' ]
[ , [ @rmtuser = ] 'rmtuser' ]
[ , [ @rmtpassword = ] 'rmtpassword' ]
Комментарии:
1. Если вы предпочитаете графику текстовой строке… SSMS позволяет вводить строки в мастере, подобном setup. Под вашим сервером вы увидите Объекты сервера >> связанные серверы. Вкладка Безопасность позволит вам определить отдельный вход / проход
2. Это определяется учетной записью пользователя, которую вы используете для входа на удаленный сервер. IE. Если вы хотите получить доступ только для чтения к этому связанному серверу, затем создайте учетную запись только для чтения на связанном сервере.
3. Не уверен, сможете ли вы … вам нужно найти кого-нибудь с системным администратором, который может создавать / изменять учетные записи пользователей.