Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
Добрый день.
Тестовый полигон был. Одна БД1 (сервер1) общалась с другой БД2 (сервер2) через linked server с опцией Be made using this security context и user1+pass1.
В хранимках БД1 были обращения вида [linked sever].[бд2].dbo.[таблица]
Переношу решение на рабочий сервер, где обе базы БД1 и БД2 рядом. Линкед понятно уже нет. В хранимках текст обращения к таблица изменяю на [бд2].dbo.[таблица]. А как того пользователя-то user1+pass1 использовать?
Сложности: клиент, вызывающий хранимки из БД1, заходит в нее через ApplicatioRole. самого клиента пересобрать сложно. Но на тестовом полигоне все работает, на рабочем надо с правами разобраться.
18 мар 15, 13:51    [17399449]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5135
DM_DM
Добрый день.
Тестовый полигон был. Одна БД1 (сервер1) общалась с другой БД2 (сервер2) через linked server с опцией Be made using this security context и user1+pass1.
В хранимках БД1 были обращения вида [linked sever].[бд2].dbo.[таблица]
Переношу решение на рабочий сервер, где обе базы БД1 и БД2 рядом. Линкед понятно уже нет. В хранимках текст обращения к таблица изменяю на [бд2].dbo.[таблица]. А как того пользователя-то user1+pass1 использовать?
Сложности: клиент, вызывающий хранимки из БД1, заходит в нее через ApplicatioRole. самого клиента пересобрать сложно. Но на тестовом полигоне все работает, на рабочем надо с правами разобраться.



А как того пользователя-то user1+pass1 использовать?

никак, он уже не нужен, т.к. нет линкед сервера.
под этим юзером выполните запрос, если в этом проблема
18 мар 15, 13:54    [17399459]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
А как того пользователя-то user1+pass1 использовать?

Пароль используется для соединения с сервером, а не с базой

DM_DM
Сложности: клиент, вызывающий хранимки из БД1, заходит в нее через ApplicatioRole. самого клиента пересобрать сложно. Но на тестовом полигоне все работает, на рабочем надо с правами разобраться

Because application roles are a database-level principal, they can access other databases only through permissions granted in those databases to guest. Therefore, any database in which guest has been disabled will be inaccessible to application roles in other databases.
18 мар 15, 13:57    [17399486]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
а как?
вот есть хранимка
alter procedure sp1
as
begin
select 1 from [linked sever].[бд2].dbo.[таблица]
end

как-то она вызывается из приложения и работает.
ок, заводим такой-же логин на рабочем сервере, пользователя в БД2, даем ему к БД2 доступ к нужным таблицам.
как поменять хранимку в БД1?
18 мар 15, 13:58    [17399490]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
а как?
вот есть хранимка
alter procedure sp1
as
begin
select 1 from [linked sever].[бд2].dbo.[таблица]
end

как-то она вызывается из приложения и работает.
ок, заводим такой-же логин на рабочем сервере, пользователя в БД2, даем ему к БД2 доступ к нужным таблицам.
как поменять хранимку в БД1?

alter procedure sp1 
as
begin
select 1 from [бд2].dbo.[таблица]
end
18 мар 15, 14:01    [17399508]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
Тестовый полигон был. Одна БД1 (сервер1) общалась с другой БД2 (сервер2) через linked server с опцией Be made using this security context и user1+pass1.
В хранимках БД1 были обращения вида [linked sever].[бд2].dbo.[таблица]
Переношу решение на рабочий сервер, где обе базы БД1 и БД2 рядом.

На тестовом полигоне тоже нужно было создать БД2. И ней можно было вместо таблиц создать представления, которые ссылались на таблицы линкед сервера. И в таком виде тестировать.
18 мар 15, 14:05    [17399533]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
ну или настроить теперь linked на самого себя и все будет как и было, хоть базы и на одном сервере
18 мар 15, 14:20    [17399636]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
o-o
ну или настроить теперь linked на самого себя и все будет как и было, хоть базы и на одном сервере

нельзя линкед сделать сам не себя
18 мар 15, 14:29    [17399713]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
Glory
Because application roles are a database-level principal, they can access other databases only through permissions granted in those databases to guest. Therefore, any database in which guest has been disabled will be inaccessible to application roles in other databases.

Другими словами даю доступ guest на нужные таблицы в БД2 и БД1 из-под approle сможет работать с ними? Так?
Другие способы есть какие-нибудь?
18 мар 15, 14:30    [17399725]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
Другими словами даю доступ guest на нужные таблицы в БД2 и БД1 из-под approle сможет работать с ними? Так?
Другие способы есть какие-нибудь?

Вот почему люди, ничего не проверив по предложенному способу, сразу начинают искать другие способы ?
18 мар 15, 14:33    [17399741]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
DM_DM
нельзя линкед сделать сам не себя

с чего это вдруг, у меня сделаны аж 3 штуки. все на себя, имена только разные
18 мар 15, 14:35    [17399760]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
Glory
DM_DM
Другими словами даю доступ guest на нужные таблицы в БД2 и БД1 из-под approle сможет работать с ними? Так?
Другие способы есть какие-нибудь?

Вот почему люди, ничего не проверив по предложенному способу, сразу начинают искать другие способы ?

Вы простите меня, чайника и косноязычного, повторюсь - предложенный способ это ваш? про guest? можно ли дать доступ guest на конкретные таблицы из бд2?
18 мар 15, 14:36    [17399771]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
можно ли дать доступ guest на конкретные таблицы из бд2?

ВЫ спрашиваете разрешение на выдачу прав или что ?
18 мар 15, 14:38    [17399777]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
o-o
DM_DM
нельзя линкед сделать сам не себя

с чего это вдруг, у меня сделаны аж 3 штуки. все на себя, имена только разные

у меня 2008r2. You cannot create a local SQL Server as a linked server.
а у вас какой?
18 мар 15, 14:39    [17399786]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
DM_DM,
много разных, но и этот в том числе.
и на всех вот такое работает:
EXEC master.dbo.sp_addlinkedserver @server = N'NameForLinkedServer', 
									@srvproduct=N'da_xot_chto', 
									@provider=N'SQLNCLI', 
									@datasrc=N'ThisServerName'
18 мар 15, 14:46    [17399852]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
если ничего больше не делать, то создастся с security = connections will be made using the login's current security context.
для вашего случая надо еще проделать
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'NameForLinkedServer', @locallogin = NULL , @useself = N'False', @rmtuser = N'your_login', @rmtpassword = N'your_password'
18 мар 15, 14:51    [17399910]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
DM_DM
предложенный способ это ваш? про guest? можно ли дать доступ guest на конкретные таблицы из бд2?

цитата Glory про guest -- из официальной документации Application Roles
а права обычным способом выдаются, хоть guest-у, хоть кому
18 мар 15, 14:55    [17399942]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5135
DM_DM
o-o
ну или настроить теперь linked на самого себя и все будет как и было, хоть базы и на одном сервере

нельзя линкед сделать сам не себя

Доброе утро! Еще как можно! Аргументируйте почему нельзя?
18 мар 15, 15:00    [17399989]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
o-o
Guest
фигасебе утро, нам пишут из Бразилии?
18 мар 15, 15:03    [17400014]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
DM_DM
Guest
o-o
если ничего больше не делать, то создастся с security = connections will be made using the login's current security context.
для вашего случая надо еще проделать

Слушайте - шаманство какое-то. GUI ругается, но скриптом все создалось. Проверяю.
Получил пока Transaction context in use by another session. Что крутить?
18 мар 15, 15:35    [17400308]     Ответить | Цитировать Сообщить модератору
 Re: как от linked server перейти к соседней базе?  [new]
Glory
Member

Откуда:
Сообщений: 104760
DM_DM
Что крутить?

сообщайте как можно меньше деталей
А именно
- максимально урезайте тексты серверных сообщений
- скрывайте команду, вызвавшую ошибку. И вообще всеь код
- не разглашайте вресию сервера
18 мар 15, 19:40    [17401821]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить