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

Откуда:
Сообщений: 6
Возможно этот вопрос был - найти не смог. Проблема такая: есть БД (возможно несколько) внешенего пользователя к ним пускать нельзя. Создаю фиктивную БД MMM, делаю VIEW в этой БД, куда собираю информацию из рабочих БД для этого пользователя. И администратор настроил доступ пользователю к БД MMM. Но при попытке просмотреть содержимое VIEW пользователь получает сообщение:
Warning: mssql_query(): message: Server user 'пользователь' is not a valid user in database 'БД <рабочая>'. И только если даю доступ к рабочим БД пользователь видит содержимое VIEW... Подскажите как это обойти???? Спасибо.
2 дек 09, 10:38    [8006555]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Glory
Member

Откуда:
Сообщений: 104760
А почему представление в другой базе то ?
Для межбазового доступа придется настраивать межбазовые же цепочки владения или вообще возможно пользоваться сертификатами
2 дек 09, 10:41    [8006584]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
cross-database ownership chaining ?
2 дек 09, 10:43    [8006611]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Eugeny_K
Member

Откуда:
Сообщений: 6
Glory, чтобы ограничить доступ внешнему пользователю к рабочей БД. Т.е. чтобы пользователь вообще не знал откуда информация. (Руководство категорически против доступа - даже по чтению - внешних пользователей к рабочей БД.
2 дек 09, 10:47    [8006637]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Glory
Member

Откуда:
Сообщений: 104760
Eugeny_K
Glory, чтобы ограничить доступ внешнему пользователю к рабочей БД. Т.е. чтобы пользователь вообще не знал откуда информация. (Руководство категорически против доступа - даже по чтению - внешних пользователей к рабочей БД.

Ну так он и не узнает, если у него будет доступ только к представлению
Откуда у него появятся вдруг другие права, если вы их не выдаете ?
2 дек 09, 10:50    [8006655]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Eugeny_K
Member

Откуда:
Сообщений: 6
Glory, в том то и вопрос: пока (для теста), чтобы он увидел содержимое VIEW пришлось дать доступ к рабочей БД, иначе при попытке получить информацию из VIEW пользователь получает сообщение см. исходное письмо :-(. .....
2 дек 09, 11:05    [8006782]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Glory
Member

Откуда:
Сообщений: 104760
Eugeny_K
Glory, в том то и вопрос: пока (для теста), чтобы он увидел содержимое VIEW пришлось дать доступ к рабочей БД, иначе при попытке получить информацию из VIEW пользователь получает сообщение см. исходное письмо :-(. .....

И что же он увидел в вашей рабочей базе то ?
Все таблицы, процедуры и тд ? Может еще и редактировать их смог ?
2 дек 09, 11:13    [8006843]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Eugeny_K
Member

Откуда:
Сообщений: 6
Glory, что он увидел?? Все что можно увидеть с правами роли "Pudlic" + я, например, для VIEW(LOCATION), которая пока выглядит так:

CREATE VIEW dbo.VIEW_Location
AS
SELECT a.*
FROM N.dbo.N$Location a

вынужден был дать permission "SELECT" для таблицы: N$Location !!!

Но по логике вещей пользователь вообще не должен знать из какой(каких) таблицы данные собираются во VIEW !!! Наверное, это должно решаться, но я не знаю как....
2 дек 09, 12:27    [8007522]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Eugeny_K
Member

Откуда:
Сообщений: 6
Glory, что он увидел?? Все что можно увидеть с правами роли "Pudlic" + я, например, для VIEW(LOCATION), которая пока выглядит так:

CREATE VIEW dbo.VIEW_Location
AS
SELECT a.*
FROM N.dbo.N$Location a

вынужден был дать permission "SELECT" для таблицы: N$Location !!!

Но по логике вещей пользователь вообще не должен знать из какой(каких) таблицы данные собираются во VIEW !!! Наверное, это должно решаться, но я не знаю как....
2 дек 09, 12:30    [8007544]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Glory
Member

Откуда:
Сообщений: 104760
Eugeny_K
Glory, что он увидел?? Все что можно увидеть с правами роли "Pudlic" + я, например, для VIEW(LOCATION), которая пока выглядит так:

CREATE VIEW dbo.VIEW_Location
AS
SELECT a.*
FROM N.dbo.N$Location a

вынужден был дать permission "SELECT" для таблицы: N$Location !!!

Но по логике вещей пользователь вообще не должен знать из какой(каких) таблицы данные собираются во VIEW !!! Наверное, это должно решаться, но я не знаю как....

А вот если бы представление находилось в той же базе, что и таблица, то достаточно было бы прав только на представление. Отсюда и все тот же вопрос - зачем делать представление в другой базе ?
2 дек 09, 12:31    [8007558]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Eugeny_K
Member

Откуда:
Сообщений: 6
Glory, а вот ответ на этот вопрос в руководстве, которое информацию, которая есть во VIEW согласно выдать внешним клиентам для обработки, но категорически против того, чтобы клиент имел доступ (даже по чтению) к рабочей БД. Отсюда и возникло решение (может не самое лучшее) - сделать фиктивную БД, в ней ряд VIEWs, к этой фиктивной БД (и только к ней) дать доступ внешним клиентам - пусть читают информацию оттуда.
2 дек 09, 12:45    [8007667]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа при просмотре VIEW  [new]
Glory
Member

Откуда:
Сообщений: 104760
Тогда вперед - читать и реализовывать предложенный уже cross-database ownership chaining
2 дек 09, 12:52    [8007721]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить