-
DXe4. При запуске приложения открывается SQL БД через AdoTable1. В строке соединения авторизации стоит "текущая учетная запись виндов". В БД на SQL серваке даны разрешения для всех пользователей домена на чтение, а одному на запись. Как узнать, есть ли у пользователя, который запустил прогу права на запись в БД?
Нужно что то типа If AdoTable1.isWriteEnable then form1.caption:=form1.caption+': Права на запись';
Спасибо.
-
Ты боишься, что если сделать инсерт/апдейт без твоей проверки, то юзер без прав может таки записать в базу всякую хрень?
-
нет,мне надо чтобы в статусбаре были права написаны: Только чтение\чтение-запись. для красоты.
каждый раз пробовать писать и удалять запись при старте - база раздуется от удаленных записей.
-
Тогда ты выбрал неправильную модель управления правами.
тебе нужна одна общая учетка для доступа прогаммы в базу, своя база пользователей и своя же система прав.
После чего ты выполнишь запрос к справочнику прав и сразу же узнаешь что можно и что нельзя текущему юзеру.
-
не. это не интересное решение.
есть все пользователи с правами на чтение и 1 на запись. мне не надо знать всех их по именам и под них еще базу вести, тем более что правами на базу админ заведает. я не знаю под кем будет запущена прога. не ужели нельзя определить, как отрылась база? только чтение или чтение запись?
-
не ужели нельзя определить, как отрылась база?
пришел юзер.
запустил твою поделку.
ты магическим образом узнал, что у него есть права на запись.
ты написал ему в статус баре: "чувак, ты имеешь права на запись."
юзер от радости захотел пописать и ушел на пять минут.
админ mssql в это время отобрал его права.
через пять минут приходит поссавший юзер, и пытается сделать инсерт.
при этом у него выходит облом и при этом он видит что ты ему написал.
-
не. это не интересное решение.
таких интересных, как ты,
с такими интересными решениями,
здесь, бывает, целые косяки ходят.
особенно в сезон.
-
Хотя конечно более интересна обратная ситуация.
Юзер запустил программу, увидел что прав на запись нет.
После чего юзер говорит:
- коллеги, хотите я вас сильно напугаю?
и нажимает на кнопку "удалить годовой баланс, который сто сотрудников строили сто дней"
А за пять секунд до нажатия админ дал ему права на запись.
-
Сделал так.
На серваке в этой базе сделал таблицу с одним полем. На нее всем запрет на все. одному разрешить выборку. При старте проги пробуем открыть таблицу и сразу закрыть. если дает - права на запись есть.
-
-
При старте проги пробуем открыть таблицу и сразу закрыть. если дает - права на запись есть.
Ну и не умный значит.
Любой результат любой проверки всегда актуален для момента времени, который уже в прошлом.
А результат этот ты намереваешься использовать в будущем.