Конференция "Базы" » Права на запись узнать [MSSQL]
 
  • Vasa777 (20.06.13 11:58) [0]
    DXe4. При запуске приложения открывается SQL БД через AdoTable1. В строке соединения авторизации стоит "текущая учетная запись виндов". В БД на SQL серваке даны разрешения для всех пользователей домена на чтение, а одному на запись. Как узнать, есть ли у пользователя, который запустил прогу права на запись в БД?
    Нужно что то типа If AdoTable1.isWriteEnable then form1.caption:=form1.caption+': Права на запись';
    Спасибо.
  • Медвежонок Пятачок © (20.06.13 15:00) [1]
    Ты боишься, что если сделать инсерт/апдейт без твоей проверки, то юзер без прав может таки записать в базу всякую хрень?
  • Vasa777 (20.06.13 15:19) [2]
    нет,мне надо чтобы в статусбаре были права написаны: Только чтение\чтение-запись. для красоты.
    каждый раз пробовать писать и удалять запись при старте - база раздуется от удаленных записей.
  • Медвежонок Пятачок © (20.06.13 15:27) [3]
    Тогда ты выбрал неправильную модель управления правами.
    тебе нужна одна общая учетка для доступа прогаммы в базу, своя база пользователей и своя же система прав.
    После чего ты выполнишь запрос к справочнику прав и сразу же узнаешь что можно и что нельзя текущему юзеру.
  • Vasa777 (20.06.13 15:48) [4]
    не. это не интересное решение.
    есть все пользователи с правами на чтение и 1 на запись. мне не надо знать всех их по именам и под них еще базу вести, тем более что правами на базу админ заведает. я не знаю под кем будет запущена прога. не ужели нельзя определить, как отрылась база? только чтение или чтение запись?
  • Медвежонок Пятачок © (20.06.13 16:09) [5]
    не ужели нельзя определить, как отрылась база?

    пришел юзер.
    запустил твою поделку.
    ты магическим образом узнал, что у него есть права на запись.
    ты написал ему в статус баре: "чувак, ты имеешь права на запись."
    юзер от радости захотел пописать и ушел на пять минут.
    админ mssql в это время отобрал его права.
    через пять минут приходит поссавший юзер, и пытается сделать инсерт.
    при этом у него выходит облом и при этом он видит что ты ему написал.
  • Медвежонок Пятачок © (20.06.13 16:11) [6]
    не. это не интересное решение.

    таких интересных, как ты,
    с такими интересными решениями,
    здесь, бывает, целые косяки ходят.
    особенно в сезон.
  • Медвежонок Пятачок © (20.06.13 16:20) [7]
    Хотя конечно более интересна обратная ситуация.
    Юзер запустил программу, увидел что прав на запись нет.
    После чего юзер говорит:

    - коллеги, хотите я вас сильно напугаю?
    и нажимает на кнопку "удалить годовой баланс, который сто сотрудников строили сто дней"

    А за пять секунд до нажатия админ дал ему права на запись.
  • Vasa777 (21.06.13 13:45) [8]
    Сделал так.
    На серваке в этой базе сделал таблицу с одним полем. На нее всем запрет на все. одному разрешить выборку. При старте проги пробуем открыть таблицу и сразу закрыть. если дает - права на запись есть.
  • [ВладОшин] © (21.06.13 15:24) [9]
  • Медвежонок Пятачок © (22.06.13 09:20) [10]
    При старте проги пробуем открыть таблицу и сразу закрыть. если дает - права на запись есть.

    Ну и не умный значит.

    Любой результат любой проверки всегда актуален для момента времени, который уже в прошлом.

    А результат этот ты намереваешься использовать в будущем.
 
Конференция "Базы" » Права на запись узнать [MSSQL]
Есть новые Нет новых   [134430   +2][b:0][p:0]