Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.05.2001, 18:11
|
|||
|---|---|---|---|
|
|||
Роль типа Application |
|||
|
#18+
MS SQL 7.0 Коллеги, просветите на счет сабжа. Как использовать роль из приложения? Точнее, как подключиться, используя такую роль? Например, из проєкта на Делфях. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 23:32
|
|||
|---|---|---|---|
|
|||
Роль типа Application |
|||
|
#18+
Из статьи "Microsoft SQL Server 7.0. Контрольная по безопасности", опубликованной в Компрессе не помню, когда. "...Однако, как бы то ни было, пользователю придется давать права на хранимые процедуры, скажем на ту же spChangeBalance. Конечно, по-хорошему он должен вызывать ее только изнутри приложения сугубо для тех счетов и сумм, которые получаются по ходу бизнес-логики, но... Но представим себе, что продвинутый пользователь Саша, купив на Горбушке диск с SQL Server, поставил себе на рабочую станцию Query Analyzer, запустил запрос типа exec spChangeBalance @Sum=$1000000, @Account=<Подставной счет в оффшоре>, далее каждый домысливает сам. Спрашивается, а) что будет в этом случае с DBA и б) как быть, чтобы этого не было? Оставим первый вопрос как риторический и рассмотрим следующий кусочек кода: revoke all from [Cаша] exec sp_addapprole @rolename=’AppRole1’, @password='abc' grant execute on spChangeBalance to ‘AppRole1’ Cымитируем работу приложения (исходный код пользователю, естественно, неизвестен и недоступен): exec sp_setapprole @rolename=’AppRole1’, @password={Encrypt N'abc'}, @Encrypt='ODBC' exec spChangeBalance … Процедура вызывается и отрабатывает. Теперь откроем Query Analyzer, Microsoft Query, Access или любую другую программу, позволяющую послать на SQL Server интерактивный запрос, зарегистрируемся на нем под логином Саши и попробуем вызвать spChangeBalance. Вызов не сработает. Это пример действия прикладной роли. Прикладные роли в SQL Server 7.0 ограничивают возможности пользователей по доступу к данным рамками конкретного приложения. Таким образом, даже если продвинутый пользователь Саша догадается, что изменение остатка по счету производится хранимой процедурой spChangeBalance, он все равно не сможет ей воспользоваться, когда захочет, вне жестко заданного сценария. Прикладные роли действуют не постоянно, а во время пользовательской сессии. Они защищены паролем, так как это единственный способ авторизации (в них нет четко приписанных логинов, потому что они могут быть активизированы из любого приложения. Следовательно, приложение должно само проверить пользователя, прежде чем включать ему прикладную роль. При активизации приложением прикладной роли в текущей БД все права и роли, соответствовавшие контексту безопасности пользователя, перестают быть действительными (кроме роли public). К другим БД можно обращаться из текущей с использованием полных имен объектов (обращения будут идти от имени guest). При смене текущей БД (явная команда USE) действие прикладной роли прекращается." Я вообще не знаю, что такое Delphi, но думаю, что из него (а также из VС++, Java, etc.) это делается абсолютно аналогично засылкой на сервер команды sp_setapprole. Вообще идеальный вариант, когда у Вас все оформлено в виде компонент (хоть на VBScript и XML - за ради Бога) и компонентам в СОМ+ прописаны роли, которые можно затем один в один отобразить на прикладные роли SQL Server'a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2001, 19:22
|
|||
|---|---|---|---|
Роль типа Application |
|||
|
#18+
В ADP Access-2000 при работе через ADO быз замечен глюк при работе с Application Role. Начинает приложение с SQL-сервером работать всегда под каким-то конкретным логином ДО того, когда оно выдаст команду переключения на роль приложения. Так вот, в ADO Access каким-то образом на клиенте буферизируются права доступа к объектам БД и даже после активизации роли приложения Access-2000 выдает сообщение о том, что у пользователя нет прав на доступ к объекту. О проявлении чего-то подобного слышал и в Delphi (сам эксперимент не ставил). Читал в одной умной книжке о наличии какой-то опции у ADO-компонентов, отключающей кэширование прав доступа (уже не помню где и что за опция, нужно копать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1826755]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 347ms |

| 0 / 0 |
