Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Доступ из одной БД к данным другой БД и роль приложения  [new]
Роман Белоусов
Member

Откуда:
Сообщений: 11
Сразу скажу читал и форум и BOL.
Есть две БД. При работе подключаю роль приложения. Процедура в одной БД выбирает данные из таблиц первой БД и второй БД. При этом процедура выполняется без ошибок, только если я во второй БД поставлю права на чтение нужной мне таблицы для гостя или паблик. Если я этих прав не ставлю - процедура не выполняется. Имеется ли возможность без выдачи прав гостя на чтение таблицы производить доступ к ней из другой БД. Все это при подключении роли приложения.
3 ноя 09, 15:41    [7877628]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
При application role так и придется делать
А права можно выдавать не гостю, а конкретному пользователю, в которого отображен ваш логин
3 ноя 09, 15:44    [7877659]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Роман Белоусов
Member

Откуда:
Сообщений: 11
Glory
При application role так и придется делать
А права можно выдавать не гостю, а конкретному пользователю, в которого отображен ваш логин

я уже в обеих БД завел роль приложения. У нее в обеих БД одинаковый логин и пароль. Прописал во второй БД права для роли приложения на чтение этой таблицы. Все равно без прав гостя ничего не выходит.
А права можно выдавать не гостю, а конкретному пользователю, в которого отображен ваш логин - можно про это поподробнее
3 ноя 09, 15:51    [7877726]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Роман Белоусов
Glory
При application role так и придется делать
А права можно выдавать не гостю, а конкретному пользователю, в которого отображен ваш логин

я уже в обеих БД завел роль приложения.

Еще раз. Невозможно заставить роль приложение авторизоваться собой в других базах. При обращении к другим базам используется текущий логин и его права, а не права роли приложение

Роман Белоусов

А права можно выдавать не гостю, а конкретному пользователю, в которого отображен ваш логин - можно про это поподробнее

Все коннекты к серверу идут под логинами. И логинам в базах соответствуют пользователи. Это называется отображение(mapping)
3 ноя 09, 15:55    [7877756]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Роман Белоусов
Member

Откуда:
Сообщений: 11
Glory,

Еще раз. Невозможно заставить роль приложение авторизоваться собой в других базах. При обращении к другим базам используется текущий логин и его права, а не права роли приложение - а вот этого не знал.
Т.е. нужно ставить права логину, под которым происходит коннект к БД? Я правильно понял?
Сейчас буду пробовать
3 ноя 09, 16:11    [7877869]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Роман Белоусов

Т.е. нужно ставить права логину, под которым происходит коннект к БД? Я правильно понял?
Сейчас буду пробовать

Нужно в БД2 создать пользователя для логина. И дать пользователю нужные права.
Интересно, что вы читали в BOL, если не знаете принципов организации безопасности в MSSQL ?
3 ноя 09, 16:13    [7877883]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10937
Роман Белоусов
Сразу скажу читал и форум и BOL.
Есть две БД. При работе подключаю роль приложения. Процедура в одной БД выбирает данные из таблиц первой БД и второй БД. При этом процедура выполняется без ошибок, только если я во второй БД поставлю права на чтение нужной мне таблицы для гостя или паблик. Если я этих прав не ставлю - процедура не выполняется. Имеется ли возможность без выдачи прав гостя на чтение таблицы производить доступ к ней из другой БД. Все это при подключении роли приложения.


sid владельца баз одинаковый?
процедура создана with execute as owner ?
3 ноя 09, 17:07    [7878286]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Роман Белоусов
Member

Откуда:
Сообщений: 11
Всем спасибо за советы.

Помогло вот что:
Это цитата из этого форума:
"
1) проверьте наличие гостя в обоих базах
2) поставьте владельцем обоих баз sa явно, безусловно, не думая:

use mydb
go
exec sp_changedbowner 'sa'
go


после чего все заработает :)

p.s.

2000 неправильно показывает везде (!) владельца базы, так что менять надо безусловно, просто поверьте

"

У меня 2005, но похоже проблема осталась. Уже голову почти сломал. Все проверил, все делаю как советуют.
3 ноя 09, 17:47    [7878544]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
aleks2
Guest
Роман Белоусов
Сразу скажу читал и форум и BOL.
Есть две БД. При работе подключаю роль приложения. Процедура в одной БД выбирает данные из таблиц первой БД и второй БД. При этом процедура выполняется без ошибок, только если я во второй БД поставлю права на чтение нужной мне таблицы для гостя или паблик. Если я этих прав не ставлю - процедура не выполняется. Имеется ли возможность без выдачи прав гостя на чтение таблицы производить доступ к ней из другой БД. Все это при подключении роли приложения.


Еще один борец с ветряными мельницами.

Зачем вам Application Role? Какие-такие бонусы по сравнению с обычным USER-Password подключением оно вам дает?

А вот геморрой - налицо.

Кстати, database ownership chains под Application Role не работают.
4 ноя 09, 09:32    [7880230]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
Роман Белоусов
Member

Откуда:
Сообщений: 11
aleks2
Роман Белоусов
Сразу скажу читал и форум и BOL.
Есть две БД. При работе подключаю роль приложения. Процедура в одной БД выбирает данные из таблиц первой БД и второй БД. При этом процедура выполняется без ошибок, только если я во второй БД поставлю права на чтение нужной мне таблицы для гостя или паблик. Если я этих прав не ставлю - процедура не выполняется. Имеется ли возможность без выдачи прав гостя на чтение таблицы производить доступ к ней из другой БД. Все это при подключении роли приложения.


Еще один борец с ветряными мельницами.

Зачем вам Application Role? Какие-такие бонусы по сравнению с обычным USER-Password подключением оно вам дает?

А вот геморрой - налицо.

Кстати, database ownership chains под Application Role не работают.

В общем то все просто. Никаких мельниц и борьбы с ними нет и в помине. Система уже есть. Сделано так как сделано. Переделывать все нет ни времени ни желания, другой работы куча. Суровая правда жизни и никаких мельниц
4 ноя 09, 17:56    [7881960]     Ответить | Цитировать Сообщить модератору
 Re: Доступ из одной БД к данным другой БД и роль приложения  [new]
MsDatabaseru
Member

Откуда: Hobby.MsDatabase.ru
Сообщений: 10937
уважаемый роман.
попробуйте вставить в процедуру строку

alter procedure dbo.myprocname (@prm int)
with execute as owner
as
select ....
5 ноя 09, 09:55    [7883745]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить