Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
Добрый день, уважаемые господа!
Скажите пожалуйста, какова методология использования запроса "Update ..." для таблицы при наличии "Column Grant/Deny" на столбцы этой таблицы для запроса "Update ..."?
10 ноя 09, 16:07    [7908754]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
Примерно такая же, как и при отсутствии "Column Grant/Deny" на столбцы этой таблицы для запроса "Update ..."
10 ноя 09, 16:11    [7908791]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
Гавриленко Сергей Алексеевич,

Примерно такая же, как и при отсутствии "Column Grant/Deny" на столбцы этой таблицы для запроса "Update ..."

Не "Примерно" и не "такая же", более того, совершенно не такая.
10 ноя 09, 16:29    [7908974]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

вы бы расшифровали для нас, темных, что в виду-то имеете?

Posted via ActualForum NNTP Server 1.4

10 ноя 09, 16:30    [7908984]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Glory
Member

Откуда:
Сообщений: 104760
vladimir_p_b
Добрый день, уважаемые господа!
Скажите пожалуйста, какова методология использования запроса "Update ..." для таблицы при наличии "Column Grant/Deny" на столбцы этой таблицы для запроса "Update ..."?

1. Соблюдайте документированный синтаксис
2. Добивайтесь целей поставленных конкретной задачей
10 ноя 09, 16:35    [7909025]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
vladimir_p_b
Гавриленко Сергей Алексеевич,

Примерно такая же, как и при отсутствии "Column Grant/Deny" на столбцы этой таблицы для запроса "Update ..."

Не "Примерно" и не "такая же", более того, совершенно не такая.
Раз вы знаете ответ, зачем задаете вопрос?
10 ноя 09, 16:40    [7909083]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
daw,
Отвечаю тёмным.
Пример.
Пусть имеется БД DB_1.
Пусть имеется пользователь User_1.
Разумеется, User_1 имеет доступ к DB_1 и её таблицам.
В БД имеется таблица Table_1.
Таблица имеет столбцы Field_1, Field_2, Field_3, Field_4, Field_5.
Типы полей м.б. самые разные, сейчас это неважно.
В самом простом случае запрос на обновление всех полей по значению одного поля выглядит след. образом:

UPDATE Table_1 SET
Field_1 = конкр_знач_1, Field_2 = конкр_знач_2,
Field_3 = конкр_знач_3, Field_4 = конкр_знач_4,
Field_5 = конкр_знач_5
WHERE Field_1 = конкр_знач_0

Ситуация резко меняется при введении запрещений на отдельные столбцы таблицы (Column Deny) для различных SQL-запросов (SELECT, INSERT, UPDATE и т.д.).
(Самый простой путь установки разрешений/запрещений - SQL Server Enterprise Manager, свойства таблицы или свойства пользователя).
При установке запрещения хотя бы на один столбец таблицы для запроса "UPDATE"
вышеприведённый запрос уже не выполнится.

Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?
10 ноя 09, 17:06    [7909301]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
Ну не выполняется. И не должен. Пишите другой запрос.
10 ноя 09, 17:09    [7909326]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Glory
Member

Откуда:
Сообщений: 104760
vladimir_p_b

Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?

Методология использования такого "UPDATE" состоит в чтении пользователем сообщения о том, что он пытается выполнить несанкционированные действия.
И в обращении к администратору для получения необходимых прав
10 ноя 09, 17:10    [7909332]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Ситуация резко меняется при введении запрещений на отдельные столбцы таблицы (Column Deny) для различных SQL-запросов (SELECT, INSERT, UPDATE и т.д.).


А может не надо его вводить?!

Вы хотели методологии? Откройте для себя, пожалуйста, ACL:

Implementing Row- and Cell-Level Security in Classified Databases
10 ноя 09, 17:14    [7909361]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
vladimir_p_b
Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?
Внимание, ответ - не использовать в UPDATE поля, для которых нет прав доступа конкретного пользователя.
10 ноя 09, 17:14    [7909363]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
Гавриленко Сергей Алексеевич
Ну не выполняется. И не должен. Пишите другой запрос.


Ваши слова означают, что для обновления значений в одной строке необходимо иметь и выполнять огромное количество запросов "UPDATE"?
В идеальном случае на каждый столбец д.б. свой "UPDATE"?
Для обновления пятидесяти столбцов необходимо выполнить пятьдесят запросов "UPDATE"?
Это ваша методология?
10 ноя 09, 17:18    [7909393]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
vladimir_p_b
Гавриленко Сергей Алексеевич
Ну не выполняется. И не должен. Пишите другой запрос.


Ваши слова означают, что для обновления значений в одной строке необходимо иметь и выполнять огромное количество запросов "UPDATE"?
В идеальном случае на каждый столбец д.б. свой "UPDATE"?
Для обновления пятидесяти столбцов необходимо выполнить пятьдесят запросов "UPDATE"?
Это ваша методология?
Моя методология - составить запрос на апдейт нужных полей.
10 ноя 09, 17:19    [7909402]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
iap
vladimir_p_b
Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?
Внимание, ответ - не использовать в UPDATE поля, для которых нет прав доступа конкретного пользователя.


Ваши слова перекликаются со словами г-на Гавриленко "Писать другой запрос".
Для обновления значений в одной строке необходимо иметь много запросов?
10 ноя 09, 17:22    [7909430]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
vladimir_p_b
Ваши слова означают, что для обновления значений в одной строке необходимо иметь и выполнять огромное количество запросов "UPDATE"?
В идеальном случае на каждый столбец д.б. свой "UPDATE"?
Для обновления пятидесяти столбцов необходимо выполнить пятьдесят запросов "UPDATE"?
Это ваша методология?


Интересно, получается?! Вы придумали некий способ реализации cell level security, и, когда, нарвались на "сложности" в реализации запросов с выбранным Вами подходов просите "методологии". О методологии следовало думать чуть раньше, когда:

1. Давали простым смертным прямой доступ к таблицам.
2. Вводили ограничения на отдельные столбцы.

Хоти двигаться в этом же направлении?! Стройте запросы "на лету", узнавая с помощью функции PERMISSIONS(...), какими правами на какие поля обладает текущий пользователь.
10 ноя 09, 17:23    [7909447]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Glory
Member

Откуда:
Сообщений: 104760
vladimir_p_b
Гавриленко Сергей Алексеевич
Ну не выполняется. И не должен. Пишите другой запрос.


Ваши слова означают, что для обновления значений в одной строке необходимо иметь и выполнять огромное количество запросов "UPDATE"?
В идеальном случае на каждый столбец д.б. свой "UPDATE"?
Для обновления пятидесяти столбцов необходимо выполнить пятьдесят запросов "UPDATE"?
Это ваша методология?

Если вы хотите знать ваши эффективные права на объекты, то для этого есть системные процедуры, функции, представления. На их основе вы можете составить запрос, который не будет затрагивать неразрешенные объекты.
10 ноя 09, 17:24    [7909457]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
vladimir_p_b
Для обновления значений в одной строке необходимо иметь много запросов?


При выбранном Вами подходе - да.
10 ноя 09, 17:24    [7909458]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
Glory
vladimir_p_b

Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?

Методология использования такого "UPDATE" состоит в чтении пользователем сообщения о том, что он пытается выполнить несанкционированные действия.
И в обращении к администратору для получения необходимых прав


Пользователь и не должен иметь возможность изменить значения некоторых полей.
Именно для этого и введены запрещения на отдельные столбцы для разных пользователей.
10 ноя 09, 17:26    [7909480]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Введение любых средств безопасности\защиты непременно приводит к ряду неудобств. И не только в SQL Server, а в любой системе. В данном случае либо пишите 50 запросов на Update, а лучше определяйте права пользователя и составляйте правильный Update
10 ноя 09, 17:27    [7909489]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Glory
Member

Откуда:
Сообщений: 104760
vladimir_p_b
Glory
vladimir_p_b

Внимание, вопрос - так какова же методология использования запроса "UPDATE" при наличии разрешений/запрещений на отдельные столбцы таблицы?

Методология использования такого "UPDATE" состоит в чтении пользователем сообщения о том, что он пытается выполнить несанкционированные действия.
И в обращении к администратору для получения необходимых прав


Пользователь и не должен иметь возможность изменить значения некоторых полей.
Именно для этого и введены запрещения на отдельные столбцы для разных пользователей.

И в чем тогда проблема?
10 ноя 09, 17:29    [7909500]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
pkarklin
Хоти двигаться в этом же направлении?! Стройте запросы "на лету", узнавая с помощью функции PERMISSIONS(...), какими правами на какие поля обладает текущий пользователь.
Только надо учесть, что функции PERMISSIONS(...) осталось жить недолго (по словам Microsoft), есть более новые функции.
И, мне кажется, будут сложности использования этих функций от имени простого пользователя, от которого поля и были спрятаны.
Если не ошибаюсь, он даже подозревать об их существовании не должен.

Фактически, на этапе планирования прав разных категорий пользователей придётся запланировать и разные приложения для каждой такой категории.
В них будут разные UPDATE в смысле изменяемых полей.
Под "разными приложениями" можно понимать и одно приложение, но стартующее в разных "режимах" для каждой конкретной группы пользователей.
10 ноя 09, 17:41    [7909624]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
iap
...Если не ошибаюсь, он даже подозревать об их существовании не должен...

у автора как раз пользователь может смотреть, а вот изменить не может
10 ноя 09, 17:45    [7909692]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
а пользователь вообще о внутренностях системы не должен знать :)
10 ноя 09, 17:45    [7909693]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
iap
Только надо учесть, что функции PERMISSIONS(...) осталось жить недолго (по словам Microsoft), есть более новые функции.
И, мне кажется, будут сложности использования этих функций от имени простого пользователя, от которого поля и были спрятаны.
Если не ошибаюсь, он даже подозревать об их существовании не должен.


Судя по проскочившему у автора "SQL Server Enterprise Manager" он использует 2000 версию, и там эта функция практически единственная, и "проблем" с видимостью метаданных там нет, как в более старших редакциях. На счет "даже подозревать об их существовании не должен", трудно сказать, ибо, например, пользователь может иметь право на просмотр значения поля, но не на его модификацию.
10 ноя 09, 17:45    [7909695]     Ответить | Цитировать Сообщить модератору
 Re: методология использования запроса "Update ..."  [new]
vladimir_p_b
Member

Откуда:
Сообщений: 26
pkarklin
vladimir_p_b
Ваши слова означают, что для обновления значений в одной строке необходимо иметь и выполнять огромное количество запросов "UPDATE"?
В идеальном случае на каждый столбец д.б. свой "UPDATE"?
Для обновления пятидесяти столбцов необходимо выполнить пятьдесят запросов "UPDATE"?
Это ваша методология?


Интересно, получается?! Вы придумали некий способ реализации cell level security, и, когда, нарвались на "сложности" в реализации запросов с выбранным Вами подходов просите "методологии". О методологии следовало думать чуть раньше, когда:

1. Давали простым смертным прямой доступ к таблицам.
2. Вводили ограничения на отдельные столбцы.

Хоти двигаться в этом же направлении?! Стройте запросы "на лету", узнавая с помощью функции PERMISSIONS(...), какими правами на какие поля обладает текущий пользователь.


Я ничего не придумывал. Ограничения на отдельные столбцы существуют давно. Что, эти ограничения нельзя использовать? Для чего они в таком случае существуют?
Насчёт простых смертных. А кто должен вводить данные, изменять данные?
И по п.2. Ограничения на отдельные столбцы вводить нельзя?
Естественно, прошу методологии. Нигде, ни в каких самых умных учебниках не написано каким же образом использовать ограничения на отдельные столбцы.
Судя по ответам на заданный вопрос никто никогда и не использовал ограничения на отдельные столбцы.
"Налету" придумываются различные варианты. Напр. г-н Гавриленко придумал использовать кучу
запросов - это бестолковый безграмотный плохой вариант.
Мелькнула идея проверять разрешения для пользователей и по результатам проверки динамически формировать текст SQL-запроса "UPDATE". Это уже лучше.
Меня же интересует мнение людей, реально использующих в своей практической деятельности
все возможности MS SQL Server и ограничения на отдельные столбцы в т.ч. и готовых
поделиться опытом.
Есть такие?
Всех остальных прошу не беспокоиться.
10 ноя 09, 17:51    [7909753]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить