Thread: Общие вопросы (General Questions)/Вопрос по рганизации БД

Вопрос по рганизации БД
Сергей. Зная что у Вас огромный опыт в работе фокса и скл сервера, У меня такой вопрос: Мне

требуеться создать второй проект с нуля. В одном городе будет стоять сервер с программой скл

сервер и базой. Эта мишина(сервер)  Подключена к интернету и через нее пользователи

розумееться входят в Инет. Вот сам Вопрос - Требуеться создать маленькую програмку для

свободного распростарнения по городам. Забыл сказать программа делаеться для фирмы по

дистрибюции. Так вот Эта програмка будет связываться с этим сервером через инет и только с

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

составить список заказа и отослать на сервак в таблицу заказов. Затруднения у меня возникают

именно здесь. Как организавать эту БД , чтоб можно было этой програмке связаться с сервером,

получит только требуемые данные, при этом чтобы злоумышленник не смог узнать пароль доступа

серверу? Вобщем как организовать безопасность базы из вне? Если я что-то невнятно написал -

сообщите.



[QUOTE Dima Dmitriev]Требуеться создать маленькую програмку для свободного распростарнения по городам. .[/QUOTE]
То есть, насколько я понял - клиентов будет неопределнное количество и Вы не хотите "замарачиваться" с выдачей каждому пароля и Login...

В принципе это классический вариант e-commerce. Я бы просто сделал Web Site на котором клиенту надо бы все равно проходить авторизацию и посылать заказ, чтобы Вы знали от кого он пришел. Все равно Вам прийдется давать разрешения клиентам после регистрации доступ в специальный раздел заказов...

Если клиентов много, но их количество ограничено и они все "дружественны" фирме. То в таких случаях есть возможность дать им "толстого клиента". На чем Вы собираетесь его писать? Хотя это не очень важно. Связь с сервером можно осуществить двумя путями - через Web Service и непосредственно по IP с SQL Server. В редакции 2005 он поддерживает оба этих режима.

В случае толстого клиента и Web Service - в SQL Server заводится одна учетная запись для этого Web Service с ограниченными правами на соответсвующие выполняемые хранимые процедуры. Далее создается как и в тонком Web кликнте следующие стандартные таблицы:
- клиенты (login, password)
- операции (то есть то что разрешено делать)
- группы
- список пользователей по этим группам
- список операций и пользователей или групп с разрешенными правами
Только администратор имеет право выполнять хранимые процедуры по манипуляуции системы безоапасности (если пользователей более 10 000 то схема будет другая)

Если связь будет непосредственно через SQL Server, то безопасность организуется двумя путями - создаются группы и на каждого пользователя учетная запись со своим "сильным" паролем. Либо одна учетная запись на всех и снова как и в Web варианте проверка при вызове каждой разрешенно хранимой процедуры клинетом их прав в соответсвии в Вашей таблице. В чем разница этих двух вариантов? В том что в 1 случае это далать должен DBA, а во втором случае - любой пользователь, кому Вы это поручите без полных прав к базе данных. Хотя возможны варианты...

Напишите к какому варанту Вы склоняетесь...



Добрый день Сергей.

Я склоняюсь ко второму варианту. Это более подходящий, чтоб не раскидываться паролями, т.к. клиент сегодня есть, а завтра его больше не будет. По поводу веб сайта тоже очень интересно. Буду говорить с заказчиком именно по поводу сайта, но он очень хочет чтоб на сайте небыло странички по оформлению заказов, он хочет чтоб была маленькая програмка для распростронения (лишь одна форма), в которой просто выводиться список имеющихся товаров в одном гриде и вовторой грид составляеться заказ, и одна кнопка отправить на сервер фирмы. Т.е. наподобии программ "Клиент-Банк", чтобы показать что фирма не такая уж и простая.


У меня такой вопрос:
По написанию интернет страниц опыт у меня базовый, но если что то изучить время есть. Я так понимаю что в интернет странице (оформления заказов) можно хранить ограниченный доступ к серверу на фирме и в кнопке отправить заказ идет вызов интернет процедуры которая в формате xml отправляет на сервер фирмы. И сервер обрабатывает этот полученный xml и вносит в таблицу заказов поступившый заказ. Правильно? И еще создавая пользователя с ограниченными порвами доступа на СКЛ Сервере, он не как неможет при его провах узнать пароль полного доступа?


От меня.
Я просмотриваю Ваш сайт. И я думаю что его надо развивать. О Web Service я статью Вашу прочитал, только нет возможности протестировать и попробывать. Мне очень понравилось как Вы все описали и обрисовали. В Вашем форуме я нашел много интересных идей. Сейчас буду в недавно законченном проекте внедрять обновление программы, которую Вы здесь изложили. Очень интересно! Я пологаю что у Вас есть еще очень много интересного о котором я не слышал и не видел. Поэтому я за то чотб этот сайт развивать!



[QUOTE Dima Dmitriev] Я склоняюсь ко второму варианту. Это более подходящий, чтоб не раскидываться паролями, т.к. клиент сегодня есть, а завтра его больше не будет. По поводу веб сайта тоже очень интересно. Буду говорить с заказчиком именно по поводу сайта, но он очень хочет чтоб на сайте небыло странички по оформлению заказов, он хочет чтоб была маленькая програмка для распростронения (лишь одна форма), в которой просто выводиться список имеющихся товаров в одном гриде и вовторой грид составляеться заказ, и одна кнопка отправить на сервер фирмы. [/QUOTE] Да, это самый лучший вариант в Вашем случае - проще вносить изменения и контролировать работу пользователй, но тут одной формой не "отделаешься" - надо будет добавить несколько форм по авторизации. В ASP.NET 2.0 это все можно сделать автоматом, но я как раз это сейчас изучаю.
[QUOTE Dima Dmitriev]  Т.е. наподобии программ "Клиент-Банк", чтобы показать что фирма не такая уж и простая. [/QUOTE] Если клиент за это платит деньги, то почему бы и нет [:)]
[QUOTE Dima Dmitriev]У меня такой вопрос:
По написанию интернет страниц опыт у меня базовый, но если что то изучить время есть. Я так понимаю что в интернет странице (оформления заказов) можно хранить ограниченный доступ к серверу на фирме и в кнопке отправить заказ идет вызов интернет процедуры которая в формате xml отправляет на сервер фирмы. И сервер обрабатывает этот полученный xml и вносит в таблицу заказов поступившый заказ. Правильно? [/QUOTE] Примерно так. Сейчас самое время Вам начать изучать ASP.NET 2.0 Там все это упрощено. На SQL Server создается клиент с урезанными правами - как правило только на запуск определенных хранимых процедур. А в этих хранимых процедурах Вы делаете то, что Вам надо. Узнать пароль админа клиент не сможет, как и просмотреть данные помимо того, что Вы ему позволите...
[QUOTE Dima Dmitriev]И еще создавая пользователя с ограниченными правами доступа на СКЛ Сервере, он не как не может при его правах узнать пароль полного доступа? [/QUOTE] Узнать пароль админа он не сможет. При использование Web Site и Web Services Вы можете ограничить доступ к Вашему SQL Server только локальными клиентами, что дополнительно повышает безопасность...
[QUOTE Dima Dmitriev] От меня.
Я просмотриваю Ваш сайт. И я думаю что его надо развивать. О Web Service я статью Вашу прочитал, только нет возможности протестировать и попробывать. Мне очень понравилось как Вы все описали и обрисовали. В Вашем форуме я нашел много интересных идей. Сейчас буду в недавно законченном проекте внедрять обновление программы, которую Вы здесь изложили. Очень интересно! Я пологаю что у Вас есть еще очень много интересного о котором я не слышал и не видел. Поэтому я за то чотб этот сайт развивать! [/QUOTE] Спасибо за Ваши советы. Сейчас я "доучиваю" ASP.NET 2.0 и MS SQL Server 2005 и буду переводить этот сервер на новую платформу. К сожалению - надо еще работать, а на работе не дают времени сидеть и заниматься своими делами [8)]

Удачи!