Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема с пользователями / 9 сообщений из 9, страница 1 из 1
05.03.2012, 12:33
    #37691374
Проблема с пользователями
Доброго времени суток.

Имеется web-приложение с авторизацией через aspnet membership. Пользователей предполагается в районе 500 - 1000. Также есть ms sql сервер, сейчас для подключения к базе используется один пользователь. Но возникла проблема с выводом данных для разных пользователей, то есть один пользователь должен видеть одни данные, другой - другие, третий - все и т.д.
Фильтровать данные для каждого пользователя на уровне приложения не вариант, т.к. сильно теряется производительность.
Подскажите пожалуйста, каким образом можно поступить в этом случае.
...
Рейтинг: 0 / 0
05.03.2012, 12:42
    #37691391
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
Корниенко Василий,
Как вариант, обращаться к базе не прямыми селектами, а через представления или процедуры, в которых и ограничивать вывод в зависимости от пользователя, переданного в качестве входного параметра, глобальной переменной и т.д.
...
Рейтинг: 0 / 0
05.03.2012, 12:53
    #37691406
Проблема с пользователями
Максим Н,

Всё так и происходит, данные выводятся через представления, но в представлении нельзя использовать переменные.
Видел отличное решение этой проблемы в системах, где используется Windows авторизация, с помощью функции SUSER_NAME() определяется пользователь и представления получаются уже отфильтрованными для определённого пользователя.
...
Рейтинг: 0 / 0
05.03.2012, 14:10
    #37691546
Проблема с пользователями
не могу поверить, что ни у кого не возникало похожей проблемы = (
...
Рейтинг: 0 / 0
05.03.2012, 14:13
    #37691553
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
Корниенко Василийне могу поверить, что ни у кого не возникало похожей проблемы = (

В этом разделе форума?.. Шутишь!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.03.2012, 14:25
    #37691583
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
On 03/05/2012 01:33 PM, Корниенко Василий wrote:

> Фильтровать данные для каждого пользователя на уровне приложения не вариант,
> т.к. сильно теряется производительность.

Вариант кстати, и достаточно неплохой.
Дело в том, что по "видимости" у тебя не должно отсекаться значительное
кол-во данных. Ну, скажем, не более половины.
Основная селективность запроса должна достигаться за счёт других критериев
поиска. Поэтому просто профильтровать уже готовый набор данных, который должен
быть небольшим, по правам пользователя -- вовсе недолго.

Да, под "приложением" тут понимается мною, естественно, средний слой,
не клиент.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.03.2012, 14:26
    #37691588
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
> Видел отличное решение этой проблемы в системах, где используется Windows
> авторизация, с помощью функции SUSER_NAME() определяется пользователь и
> представления получаются уже отфильтрованными для определённого пользователя.

Кто тебе мешает сделать то же самое ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.03.2012, 15:12
    #37691706
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
Корниенко Василий Фильтровать данные для каждого пользователя на уровне приложения не вариант, т.к. сильно теряется производительность. Расскажите как вы фильтруете.
Имеется ли в виду решение влоб
Код: sql
1.
select my_fields from my_view where (my_filter) and belong_to_user=@user
...
Рейтинг: 0 / 0
06.03.2012, 08:06
    #37692760
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с пользователями
Корниенко ВасилийМаксим Н,

Всё так и происходит, данные выводятся через представления, но в представлении нельзя использовать переменные.
Видел отличное решение этой проблемы в системах, где используется Windows авторизация, с помощью функции SUSER_NAME() определяется пользователь и представления получаются уже отфильтрованными для определённого пользователя.
Можно в представления вшить инфорацию о пользователях и на клиента формировать запроса вида:
Код: plsql
1.
select * from my_view where user_name=%user_name%
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема с пользователями / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]