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

Откуда: Караганда -> Липецк
Сообщений: 812
Всем привет.

Подскажите какие существуют возможности у ms sql сервера по защите от редакции таблицы-справочника пользователем.
Есть SQL Sever 2005 и закрытое программное обеспечении по редакции данных в нем.
Пользователи иногда ошибаются и выполняют ошибочное изменение в таблице-справочнике.
начальство просит запретить редакцию и оставить ее только для "избранных"

Пользователь в базе один и авторизация зашита в конфиг файле (xml)

Никогда не разрабатывал под MS SQL но пока вижу такой вариант решения задачи:
написать маленькую программу, которая будет у пользователя в базе отбирать/возвращать права на модификацию таблицы
запрашивая дополнительный пароль.

Или может это правильнее сделать как-то через триггер - но мне пока не понятно как определить пользователя которому можно редактировать таблицу?
11 апр 16, 09:29    [19040825]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
PPA,
либо запретите через
https://msdn.microsoft.com/ru-ru/library/ms188371(v=sql.120).aspx


либо через триггер, тогда удобней понятно ругаться
определить пользователя:
SUSER_SNAME();
USER_NAME();
11 апр 16, 09:32    [19040839]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PPA
начальство просит запретить редакцию и оставить ее только для "избранных"

Пользователь в базе один и авторизация зашита в конфиг файле (xml)

Если пользователь один, то как вы предлагаете отличать "избранных" от всех прочих ?
11 апр 16, 09:36    [19040853]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
постоянный мембер
Guest
Glory
PPA
начальство просит запретить редакцию и оставить ее только для "избранных"

Пользователь в базе один и авторизация зашита в конфиг файле (xml)

Если пользователь один, то как вы предлагаете отличать "избранных" от всех прочих ?
по имени хоста ?
11 апр 16, 10:10    [19040949]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
постоянный мембер
Glory
пропущено...

Если пользователь один, то как вы предлагаете отличать "избранных" от всех прочих ?
по имени хоста ?

А имя хоста откуда возьмется вдруг ?
11 апр 16, 10:10    [19040952]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
Glory,

Ну вот тут идею предложили - если на триггере можно узнать имя виндового юзера
можно на триггере если не из доверенных - кидать исключение.
тогда и программу писать никакую не нужно.

TaPaK спасибо - пошел гуглить примеры триггеров
11 апр 16, 10:15    [19040972]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
PPA
Glory,

Ну вот тут идею предложили - если на триггере можно узнать имя виндового юзера
можно на триггере если не из доверенных - кидать исключение.
тогда и программу писать никакую не нужно.

TaPaK спасибо - пошел гуглить примеры триггеров

странные выводы... правильно ж говорят, что если ходите под одним, то как же пользователя идентифицировать
11 апр 16, 10:18    [19040983]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PPA
Ну вот тут идею предложили - если на триггере можно узнать имя виндового юзера

У кого узнать то, если все ваши клиенты используют "одного пользователя, зашитого в конфиг файле" ?
11 апр 16, 10:25    [19041005]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
Glory,

В конфиге зашит юзер под которым приложение ходит в базу данных.
но ведь я на триггере могу узнать виндового юзера?

и тогда если хочешь редактировать таблицу - зайди в винду под специальным юзером
и тогда триггер пропустит редакцию. иначе - будет исключение и таблицу поправить не получится.
11 апр 16, 11:07    [19041230]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
PPA
но ведь я на триггере могу узнать виндового юзера?
Покажите триггер
11 апр 16, 11:09    [19041237]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PPA
В конфиге зашит юзер под которым приложение ходит в базу данных.
но ведь я на триггере могу узнать виндового юзера?

Еще раз - узнать откуда ? Кто/что вам сообщит о том, что там творится на клиентской машине ?
11 апр 16, 11:10    [19041241]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
iap
PPA
но ведь я на триггере могу узнать виндового юзера?
Покажите триггер


А триггера пока нет - его мне предстоит написать.
но я проверил функцию SUSER_NAME
он возвращает мне юзера под которым выполнен логин в windows
база физически находится на одном компе.
т.е. если на триггере проверить это имя то можно блокировать редакцию таблицы если пользователь
под которым включили комп не соответствует нужному.
11 апр 16, 11:38    [19041452]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
PPA
iap
пропущено...
Покажите триггер


А триггера пока нет - его мне предстоит написать.
но я проверил функцию SUSER_NAME
он возвращает мне юзера под которым выполнен логин в windows
база физически находится на одном компе.
т.е. если на триггере проверить это имя то можно блокировать редакцию таблицы если пользователь
под которым включили комп не соответствует нужному.

вы проверяли SUSER_NAME просто из SSMS? или при работе с клиента?
11 апр 16, 11:46    [19041531]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
iljy
Member

Откуда:
Сообщений: 8711
PPA
iap
пропущено...
Покажите триггер


А триггера пока нет - его мне предстоит написать.
но я проверил функцию SUSER_NAME
он возвращает мне юзера под которым выполнен логин в windows
база физически находится на одном компе.
т.е. если на триггере проверить это имя то можно блокировать редакцию таблицы если пользователь
под которым включили комп не соответствует нужному.


Значит у вас соединение происходит по виндовой авторизации, а нет под "пользователем, зашитым в конфиг-файле". Сервер ничего не знает о клиентском компе, а только о свойствах соединения. А раз так - не занимайтесь ерундой и просто настройте для разных пользователей соответствующие права.
11 апр 16, 11:48    [19041557]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
[quot TaPaK]
PPA
пропущено...

вы проверяли SUSER_NAME просто из SSMS? или при работе с клиента?


Клиент без исходников - там я проверить ничего не могу никак.
проверял вот в этой программе - sql server management studio express
11 апр 16, 13:05    [19042150]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
[quot PPA]
TaPaK
пропущено...


Клиент без исходников - там я проверить ничего не могу никак.
проверял вот в этой программе - sql server management studio express

если в базу ваш клиент ходит под техническим юзером, то вы всегда будете получать одно и тоже, т.е. его :) уточните у вендора как происходит имперсонализация в клиента в бд
11 апр 16, 13:10    [19042171]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
o-o
Guest
iljy
PPA
пропущено...


А триггера пока нет - его мне предстоит написать.
но я проверил функцию SUSER_NAME
он возвращает мне юзера под которым выполнен логин в windows
база физически находится на одном компе.
т.е. если на триггере проверить это имя то можно блокировать редакцию таблицы если пользователь
под которым включили комп не соответствует нужному.


Значит у вас соединение происходит по виндовой авторизации, а нет под "пользователем, зашитым в конфиг-файле". Сервер ничего не знает о клиентском компе, а только о свойствах соединения. А раз так - не занимайтесь ерундой и просто настройте для разных пользователей соответствующие права.

нет.
это значит, что он там свой логин увидел.
потому что зашел в студию под своим виндовым логином и запросил SUSER_NAME.
а под кем ходит *программа* так никто и не знает
11 апр 16, 13:16    [19042199]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Adx
Guest
Если в "файле одном на всех" прописана виндовая авторизация - проблем нет.
Если нет, но там строка соединения - можно поправить.
Если пользователь SQL - нужно исхитряться.
11 апр 16, 15:30    [19043265]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
rootman
Member

Откуда:
Сообщений: 114
Запретить всем (т.е. только одному из под кого ходит программа), по необходимости разрешать и потом опять запрещать)))
11 апр 16, 18:17    [19044145]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
автор
но ведь я на триггере могу узнать виндового юзера?


Нет, не можете. Можете определить имя хоста, с которого пришел запрос. Но хост не равен пользователю.
11 апр 16, 18:27    [19044191]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Владислав Колосов
Можете определить имя хоста, с которого пришел запрос

не факт, это один из указываемых пар-ов в строке подключения...никто не видел строку подключения топикстартера, чтобы так уверено утверждать про возможность определения хоста
11 апр 16, 18:44    [19044260]     Ответить | Цитировать Сообщить модератору
 Re: Защита от редакции таблицы  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
PPA
Пользователь в базе один и авторизация зашита в конфиг файле (xml)
Что вам мешает создать второго пользователя? Дать ему права, а у остальных отобрать.
XML это наверное такой недокументированный шифрованный формат данных с 5-ю степенями защиты, что там что-то "зишито".
11 апр 16, 22:14    [19044889]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить