powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / про application role
11 сообщений из 11, страница 1 из 1
про application role
    #32044971
anna510
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, pls.
В приложении пользователь начинает работу с доступом только к одной таблице и процедуре, которая проверит его пароль. Если все ОК, приложение включит sp_setapprole с доступом ко всем нужным таблицам/процедурам.
И не из приложения, а, например, из QA, пользователь ничего не получит.
Но ведь в QA он сам может написать exec sp_setapprole (если знает пароль), и после этого все у него будет.
Нельзя ли как-нибудь ему запретить выполнять sp_setapprole, что ли? Или запрятать ее куда-нибудь?
...
Рейтинг: 0 / 0
про application role
    #32044977
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем проблема? Для вызова sp_setapprole необходим пароль, который и необходимо защитить от Пользователя.
Рекомендуют (Richard Waymire) хранить его в реестре, запретив доступ к ветке всем, кроме Приложения.

Вы можете запретить доступ к Вашей таблице (только через SP), если вы там храните пароль...

Удачи
...
Рейтинг: 0 / 0
про application role
    #32045018
Vasiliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4 jimmers
А можно подробнее о "запретив доступ к ветке всем, кроме Приложения." это как ?
...
Рейтинг: 0 / 0
про application role
    #32045021
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так:

Создается сервис MyApp, запускается под учетной записью
MyAccount. Доступ к ветке реестра запрещается всем, кроме MyAccount.

Удачи
...
Рейтинг: 0 / 0
про application role
    #32045025
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 jimmers

Чего-то я не допонял.

1. Защитить ветку реестра можно только в ОС линейки NT/2000/XP.

2. Речь идет о приложении, которое должно работать везде (на всех версиях Win)

Противоречие некоторое, или мое скудоумие ?

Поясните, пожалуйста, подпробнее. На пальцах.
...
Рейтинг: 0 / 0
про application role
    #32045031
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идет о приложении, которое должно работать везде (на всех версиях Win)

Простите, я что-то такого условия не вижу.

Более того, устанавливать SQL Server на не серверную
платформу (т.е. на 9x или NT Workstation/2000 Professional/XP) для production систем, мягко говоря, неправильно.

Позволю себе еще высказаться по поводу подхода "зашифровать пароль при помощи ключа, известного только приложению и сохранить в реестре".
Пользователь может изучить работу приложения и извлечь ключ... Может точку останова поставить...
...
Рейтинг: 0 / 0
про application role
    #32045205
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 jimmers

Цитата:
Подскажите, pls.
В приложении
пользователь начинает работу с доступом только к одной таблице и процедуре, которая проверит его пароль. Если все ОК, приложение включит sp_setapprole с доступом ко всем нужным таблицам/процедурам

Теперь вопрос: пользователь что, прямо на сервере работает, или все же использует клиентское приложение?

Ответ:
Использует приложение. Необязательно на сервере. Вернее, скорее всего НЕ на сервере.

Выводы:
Клиентское приложение - WINDOWS* программа, которая должна работать на клиентских ПК, на которых, как правило, установлены ОС линейки Win 95/98/ME.
Поэтому, вариант с защитой реестра - не пройдет.

* WINDOWS программа, а не WWW browser, т.к. у нее достаточно "ума" для подключения sp_setapprole.

ЗЫ Увы, я тут развыпендривался, но ничего не могу предложить кроме того, чтобы просто не сообщать пароль пользователю. Если же он его знает - сменить срочно!
...
Рейтинг: 0 / 0
про application role
    #32045214
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый г-н Jimmy.

Касательно проблемы г-жы anna510: можно вызывать sp_setapprole внутри процедуры, проверяющей пароль и, таким образом, не дать Пользователю увидеть пароль AppRole. Об этом я и написал в своем первом ответе. Это обеспечение безопасности хранения пароля средствами SQL Server'a, что есть полный аналог предложенному мной способу с сервисом. Недостаток его -низкое качество кода SQL Server'a в смысле безопасности по отношению к аналогичному коду ОС (что естественно), так что я более доверяю механизмам ОС.

Я привел пример наиболее грамотного, на мой взгляд, решения по защите пароля AppRole. Безусловно, г-же anna510 он не подходит, т.к. приложение уже написано.

Кроме того, решение с сервисом вовсе не требует работы на сервере - клиентское приложение с любой машины соединяется с сервером, где наш сервис и слушает. Он обеспечивает хранение пароля и соединение с SQL Server'ом. Вот и все.

Если пользователь знает пароль AppRole, то он сможет ее активировать, как Вы понимаете...

Удачи
...
Рейтинг: 0 / 0
про application role
    #32045218
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я тут слышал неоднократные жалобы, что внутри процедуры sp_setapprole отказывается работать с ошибкой типа, что требуется ad-hoc запрос, хотя сам, каюсь, не проверял.
...
Рейтинг: 0 / 0
про application role
    #32045225
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Dankov
Точно так, внутри процедуры exec set_approle не работает. Хочет ad-hoc запрос.

А в остальном - согласен с jimmers
...
Рейтинг: 0 / 0
про application role
    #32045236
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 jimmers

Спасибо за разъяснение. Это я и хотел понять - механизм взаимодействия.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / про application role
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]