Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > определение роли (привелегии) пользователя в проге


Автор: Fyrklod 22.12.2007, 19:28
Данные хранятся на сервере.. на серваке есть пару юзеров... один админ, второй - обычные обозреватель данных (ему разрешено вносить и обновлять данные из части таблиц которые создает админ)...  прога конектится к этому серверу.. хочу сделать чтобы при авторизации была проверка.. заходит админ или юзер.. ну соответсвенно от того кто зашел я делаю необходимое действие.. мну просто надо выловить кто вошел... 

p.s совет с хранимой таблицей пользователй в админсокй какой-то табице не катит... т.к на старте прога еще не сконектлась с сервером...
каждый пользователь этого сервера может конектиться к БД

забыл написать: 
СУБД - Оракл 8
Среда рaзpаботки C# который 2005 от рождества хрестова

Автор: mr.DUDA 23.12.2007, 12:27
Так в чём проблема с отдельной таблицой а-ля Users в той же базе данных? Ведь приложение выполняется на сервере, проблем с безопасностью нет, пусть себе прога коннектится, проверяет права доступа пользователя и т.п.

Типичный сценарий.

Автор: Fyrklod 23.12.2007, 12:39
Ну либо я этот сценарий не так понимаю либо не наю... но смотри.. чтобы войти под логином и паролем закинутыми в таблицу находящейся в учетке админа нужна чтобы программа с самого начала уже имела конект к схеме админа (т..е чтобы сессия админа уже была открыта) т.е внутри проги прописать при запуске проги чтобы он по вбитой паре лог-пас уже конектился(вроди как это не правильно.. внутри проги хранить лог и пас)... а у меня все сессии на момент запуска проги закрыты... т..е авторизация к проге идет через автризвцию к серверу Оракл... т.е сразу чья-то сессия открывается

Добавлено через 9 минут и 31 секунду
я уже думал глупостью эту ерунду делать , но не идея мне не нравится...
глупость следующего плана

после конект пытаться добавить данные в запретную для пользователя таблицу.. если добавление происходит, то админ иначе юзер

Код

string priv = "admin";
try
{
   Insert into........ ;
// и сразу удаление этой глупости из таблици
   Delete 
}
catch (OracleExcaption ex)
{
  if(ex.Code) // если ошибка о запрете добавленя из-за прав пользователя, то
     priv = "user"
}


НО повторюсь.. это бред.. чем еще поможете?

Автор: mr.DUDA 23.12.2007, 13:13
Что-то я совсем запутался. Какие сессии и т.п. ?

Может кто-нибудь другой поможет...

Автор: D_F_V 24.12.2007, 03:40
Цитата(Fyrklod @  23.12.2007,  12:39 Найти цитируемый пост)
НО повторюсь.. это бред.. чем еще поможете? 


Можно сохранять пару лог-пас в памяти до момента пока не произведешь проверку в таблице...

Автор: HAL707 24.12.2007, 17:00
А нельзя ли написат хранимку (или пакет, или как там он у вас в оркле называется..), которая определяет и возвращает юзера под которым выполняется сессия на сервере БД?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)