|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Для построение одной из систем не хватает следующего функционала. У пользователя должен быть набор прав на чтение данных в БД, кроме одной служебной хранимки - которая меняет данные. Может существует такая возможность какие то обходные пути? Ну или другой вариант когда сессия X читает данные но при этом могла бы их читать с учетом незакомиченных данных в транзакции сессии Y? Ну своего рода мапинг такой.Сейчас вариант есть менять на лету права но с точки зрения производительности и администрирования не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:26 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Не очень понятно, что понимается под "правами на чтение хранимки", но в любом случае любые права можно настроить пообъектно, будь то просмотр хранимки или данных, которая она генерирует. Для простоты администрирования бывает удобно вынести такой объект в отдельную схему и настраивать права на схему. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:45 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу, ? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 18:47 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Запретить выполнять хранимую процедуру более чем одному коннекту (в любой момент времени), насколько я понимаю, нельзя. Нет, можно , конечно, но так делать не стоит (переводом базы в single mode ). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 22:17 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу, В общем, в результате обсуждения выяснилось, что вопрос непонятен, что нужно-то? :-) МуМу У пользователя должен быть набор прав на чтение данных в БД, кроме одной служебной хранимки - которая меняет данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 22:31 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
А если двое под одним логином? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 03:26 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
SIMPLicity_ Запретить выполнять хранимую процедуру более чем одному коннекту (в любой момент времени), насколько я понимаю, нельзя. Нет, можно , конечно, но так делать не стоит (переводом базы в single mode ). Можно, почему нет. Используйте блокировку уровня приложения - sp_getapplock ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:15 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Объясню по другому. Есть БД в которой есть куча таблиц и хранимок. Хранимки некоторые меняют данные некоторые нет. Некоторая система понимает какие хранимки на изменение какие на чтение. Которые на чтение должны выполнятся на локальном сервере, а на изменение на другом. Что бы исключить ошибку идентификации(чтение - изменение) выдаются права только на чтение. То есть, если процедура ошибочно будет идентифицированна на чтение а произойдет изменение данных то возникнет ошибка. При все при этом возникает необходимость изменять данные из этой же сессии в этой базе но через "спец" канал - через специально выделенную хранимку. Пока пришло такое решение в голову - меняем все таблицы на соответствующие вьюхи, а таблицы переименовываем на какое нибудь гарантированно уникальное значение например ТаблицаНовая =Таблица + 35645830. Ну а затем даем права на чтение вьюх и на использование спецхранимки на изменение. Правда проверить нужно, возможно при таком раскладе остальные хранимки смогут менять данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:30 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Еще забыл отметить что вьюхи должны быть доступны на чтение но при изменении должна происходить ошибка. (есть мысли еще через триггер ошибку генерить с проверкой канала изменений, в этом случае тогда вообще с правами заморачиваться не нужно) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:36 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу, Вроде и по русски, но все равно не понял, Вы решаете эту задачу в рамках одного логина или у вас их может быть несколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:40 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу, Читать про роль db_denydatawriter ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:42 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу Еще забыл отметить что вьюхи должны быть доступны на чтение но при изменении должна происходить ошибка . (есть мысли еще через триггер ошибку генерить с проверкой канала изменений, в этом случае тогда вообще с правами заморачиваться не нужно) Здесь всё круто, как говорил Антон Павлович ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:46 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Убегал в больницу, торопился извините за мой французский;) Вьюхи должны быть не обновляемые, такой термин будет думаю всем понятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 12:49 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу, 1. Создать схему с владельцем, отличным от владельца схемы в которой живут процедуры и переместить туда все таблицы. 2. Для каждой перемещенной таблицы создать в исходной схеме синоним. 3. Добавить кого нужно в db_denydatawriter 4. Профит ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 13:04 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
To invm. Да пожалуй так красивее получится( в моем варианте надо парсить запросы и заменять названия таблиц, вьюхи то необновляемые). Спасибо, попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 14:45 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Gbpltw! Это всё круто, но надо помнить, что коннект, присоединившийся под логином из группы sysadmin, сможет писать и в то и в другое. Похоже что так... PS А клиентская часть" готова получать ошибку записи и корректно её отрабатывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 02:18 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
МуМу Для построения одной из систем не хватает ... функционала. Некоторая система понимает какие хранимки на изменение какие на чтение. Которые на чтение должны выполнятся на локальном сервере, а на изменение на другом. Если "чтение" - это отчёты, можно зеркалирование сделать с зеркалами для чтения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 05:51 |
|
Можно ли для прав на чтение в БД сделать исключение на изменение данных одной хранимки?
|
|||
---|---|---|---|
#18+
Планируется создание универсальной системы прокси( для целей создания кластера) в которой нет возможности менять вызов запросов(можно минимально менять их на лету) и разделять их. Важно разделять чтение и запись и соответсвенно выполнять на различных нодах(это в общих чертах). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2020, 15:14 |
|
|
start [/forum/topic.php?fid=46&fpage=70&tid=1686545]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 333ms |
total: | 470ms |
0 / 0 |