Разрешите войти? Фленов Михаил aka Horrific Спецвыпуск: Хакер, номер #052, стр. 052-074-4 Это действительно супервозможность, потому что некоторые колонки, отвечающие за целостность базы, не должны изменяться пользователями и тем более хакерами. На такие колонки лучше запретить операцию изменения (UPDATE) и, если есть возможность, то даже просмотр (SELECT). Индивидуализм Роли очень удобны, когда нужно объединить похожих пользователей, однако бывают случаи, когда права должны быть уникальными для пользователя, или когда кроме тех прав, которые дает роль, нужно дать еще и дополнительные права. Например, один из бухгалтеров может захотеть заполучить доступ к таблицам из отдела кадров. Это нормальная ситуация, в которой заводить отдельную роль нет смысла: лучше добавить этому человеку права напрямую. Мы специально рассмотрели сначала роли, чтобы привыкнуть к ним. Дело в том, что многие заводят одну запись для бухгалтеров, одну для экономистов и т.д. В этом случае толпы ломятся на сервер через одну запись и становится невозможно контролировать, кто и что сделал. Индивидуальные права нужно использовать только там, где нужно, а каждый пользователь должен иметь свою запись. Права на таблицы Давай посмотрим, как можно давать права на определенные объекты. Для начала посмотрим таблицы. Выберем в дереве объектов ветку Databases/Northwind/Tables. В правой части будет показан список всех таблиц. Щелкнем по любой таблице правой кнопкой и в появившемся меню выберем All tasks/Manage permissions. Перед нами открывается окно настройки прав. Тебе оно ничего не напоминает? Действительно, окно похоже на распределение прав ролей, только вместо списка объектов - список пользователей. Объект и так ясен – это та таблица, по которой мы щелкали и имя которой виднеется в выпадающем списке в верху окна. Теперь нам остается только указать права для этого объекта различным пользователям. Список прав уже знаком. Это все те же просмотр, обновление, добавление, удаление, выполнение и управление. Если нажать на кнопку Columns, то перед нами откроется окно настройки прав доступа объекта на уровне полей таблицы для выбранного пользователя. Вьюшки Допустим, у нас есть две таблицы. В одной из них хранится список работников фирмы, а в другой находится информация о количестве отработанных за месяц часов и о полученной заработной плате (белой и черной). Допустим, к нам приходит налоговая инспекция и говорит: "А покажите нам зарплату работников!". Нет, конечно, мы понимаем, что наши читатели ничем подобным не занимаются, поэтому эту ситуацию мы взяли только как пример. Итак, какие нужно выполнить действия? Первое предложение поступило из третьего ряда: создать нового пользователя, которому разрешен доступ к чтению (изменение и другие права налоговикам ни к чему) таблиц со списком работников и зарплаты. При этом нужно не забыть закрыть колонку с черным налом, иначе босс может расстроиться. В принципе, решение верное, но абсолютно не эффективное. |