Безопасность Delphi + ADO + MS SQL2000
От: SergS  
Дата: 14.07.04 12:24
Оценка:
Ставлю экспиремент. Дано:
MS-SQL 2000 + БД + одна таблица + два поля в ней
(
id — int
trytext — char(10)
)
+ хранимая процедура возращающая все данные этой таблицы
+ пользователь, которуму ПЕРЕКРЫТЫ ВСЕ ПРАВА кроме запуска этой хранимой процедуры.
Клиент: Delphi 7 + ADOStoredProc запускающая хранимую процедуру на сервере от имени пользователя у которого только на это права и есть.
А вот теперь вопрос: почему у меня получается не только редактировать записи вернувшиеся мне процедурой, но и вставлять новые записи, хотя прав у меня на это нет? Просмотрел всё что делается на сервере Profiler-ом, делает от имени пользователя всякие insert-ы и update-ы. Что я не учёл?
Re: Безопасность Delphi + ADO + MS SQL2000
От: Forint Украина  
Дата: 14.07.04 14:16
Оценка:
В принципе, процедура выполняется с правами юзера её создавшего, т.е. если sa создал процедуру в которой производится удаление данных из некой таблички Т_1, а юзер имеет права на запуск процедуры, но не имеет права на удаление записей из данной таблицы, то удаление будет произведено.
... << RSDN@Home 1.1.0 stable >>
Re[2]: Безопасность Delphi + ADO + MS SQL2000
От: DaHa Украина http://www.dahasystem.narod.ru
Дата: 14.07.04 14:43
Оценка:
Здравствуйте, Forint, Вы писали:

F>В принципе, процедура выполняется с правами юзера её создавшего, т.е. если sa создал процедуру в которой производится удаление данных из некой таблички Т_1, а юзер имеет права на запуск процедуры, но не имеет права на удаление записей из данной таблицы, то удаление будет произведено.


Надо для процедуры четко определить права на таблицу, там delete, insert, update, или в MS SQL 2000 подобного нет?
Re[3]: Безопасность Delphi + ADO + MS SQL2000
От: Forint Украина  
Дата: 14.07.04 15:16
Оценка:
Здравствуйте, DaHa, Вы писали:

DH>Здравствуйте, Forint, Вы писали:


F>>В принципе, процедура выполняется с правами юзера её создавшего, т.е. если sa создал процедуру в которой производится удаление данных из некой таблички Т_1, а юзер имеет права на запуск процедуры, но не имеет права на удаление записей из данной таблицы, то удаление будет произведено.


DH>Надо для процедуры четко определить права на таблицу, там delete, insert, update, или в MS SQL 2000 подобного нет?


Права могут относится только к пользователям или группам. Т.е. можно ограничить права пользователя создавшего процедуру.
... << RSDN@Home 1.1.0 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.