|
|
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Добрый день! Объясните мне механизм подключения пользователй к серверу, пожалуста. Как вообще осуществить такой доступ к серверу? Создать таблицу на сервере, где заведены все пользователи и их пароли и при запуске приложения пользователь выбирает свой логин и пароль, затем проверяется с этой таблицой и происходит запуск приложения. Или на сервере создавать пользователей, а затем в строке соединения указывать пароль логин и т.д. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 12:53 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
на сервере: 1.создать пользователей 2.создать группы пользователей 3.ввести пользователей в группы 4.в базе данных дать права группам пользователей и/или пользователям пункты 2,3 могут отстутствовать но с группами удобней если пользователей много в приложении: 1.спрашивать у пользователя логин/пароль 2.подставлять полученные логин/пароль в строку подключения Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 13:31 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Я даю пользователям доступ к серверу только через мое приложение. На сервере храню таблицу пользователей с паролями и даю доступ на запуск процедуры, которая читает данные из этой таблицы. Если все ОК, то запускается приложение со своим паролем, который неизвестен пользователям и накак не связан с паролями входа в приложение. Если пользователям давать права доступа непосредственно на сервер, то особо продвинутые из них смогут получить данные, используя Access, Excel и другие программы. А это крайне нежелательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 14:33 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
novaОбъясните мне механизм подключения пользователй к серверу, пожалуста. Как вообще осуществить такой доступ к серверу? Создать таблицу на сервере, где заведены все пользователи и их пароли и при запуске приложения пользователь выбирает свой логин и пароль, затем проверяется с этой таблицой и происходит запуск приложения. Или на сервере создавать пользователей, а затем в строке соединения указывать пароль логин и т.д. Спасибо! Что в данном контексте имеется в виду под "сервером"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 15:01 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Я даю пользователям доступ к серверу только через мое приложение. На сервере храню таблицу пользователей с паролями и даю доступ на запуск процедуры, которая читает данные из этой таблицы. Если все ОК, то запускается приложение со своим паролем, который неизвестен пользователям и накак не связан с паролями входа в приложение. Если пользователям давать права доступа непосредственно на сервер, то особо продвинутые из них смогут получить данные, используя Access, Excel и другие программы. А это крайне нежелательно. --------- это неправильно. Таким образом ты отказываешся от предоставляемых сервером средств по разделению прав доступа и пытаешся создать их сам. 1.Лишняя работа, 2.лучше чем в скл сервере сделать практически невозможно, 3.могут быть ошибки в твоём коде. 4.Кроме того если права на доступ к данным прописаны на сервере то никакой пользователь никакими средствами не сможет ни посмотреть ни изменить то что ему не разрешено, вопросы с аксесом/екселом просто не возникают если не ясно как можно организовать разграничения прав в скл сервере можно посмотреть документацию к нему, в конечном итоге это будет эффективней Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 15:03 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
авторКроме того если права на доступ к данным прописаны на сервере то никакой пользователь никакими средствами не сможет ни посмотреть ни изменить то что ему не разрешено, вопросы с аксесом/екселом просто не возникают Это неправильно. Если пользователь заведен на сервере, то он имеет к нему доступ (независимо от приложения) в соответствии со своими правами. Как раз вопросы с аксесом/екселом поэтому и возникают. Преимущество такой схемы в вопросах администрирования тоже спорно. Если приложение динамично, постоянно вносятся изменения в структуру,-создаются новые объекты, то администрить в этом случае сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 16:29 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Это неправильно. Если пользователь заведен на сервере, то он имеет к нему доступ (независимо от приложения) в соответствии со своими правами. Как раз вопросы с аксесом/екселом поэтому и возникают. ---------------------- если пользователь заведён на сервере то он никуда доступа не имеет. Он имеет доступ только к тем объектам к которым дан доступ. Доступ может быть отдельным не только на объекты бд (таблицы, вью, процедуры) но и на insert/update/select/delete/create. Не зависимо от приложения из которого идёт коннект, хоть из ексела хоть из аксеса. Хоть из командной строки (isql). В очень редком случае когда нужно какую-то дополнительную проверку пользователя делать это надо в триггерах на таблицы а не в клиентском приложении. Да и вообще вся логика должна быть на сервере в большинстве случаев хелп надо читать. Использование сервера позволяет поднять производительность и защиту приложения. Отказ от средств предоставляемых сервером делает бессмысленным его использование Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 17:26 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
авторесли пользователь заведён на сервере то он никуда доступа не имеет. Он имеет доступ только к тем объектам к которым дан доступ. Доступ может быть отдельным не только на объекты бд (таблицы, вью, процедуры) но и на insert/update/select/delete/create. Не зависимо от приложения из которого идёт коннект, хоть из ексела хоть из аксеса. Хоть из командной строки (isql). Я и писал именно об этом. Что, если пользователь имеет права на сервере, то он может подконнектиться к нему из стороннего приложения. Для меня это крайне нежелательно. авторВ очень редком случае когда нужно какую-то дополнительную проверку пользователя делать это надо в триггерах на таблицы а не в клиентском приложении. Да и вообще вся логика должна быть на сервере в большинстве случаев Надо разделять логику разграничения прав доступа, логику поддержания целостности БД и бизнес-логику приложения, а не валить все в одну кучу:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 18:06 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Прочитай ещё раз права пользователю даются именно такие какие нужно. Нет смысла давать пользователю права на удаление из таблицы товаров на складе чтоб потом в приложении проверять есть ли у него право удалять из таблицы товаров. Понятна разница? В одном случае у Иванова поставить крест на delete в таблице товаров и всё, в твоём - написание процедуры которая проверяет есть ли у Иванова право удалять из этой таблицы, процедур для работы со списком паролей (добавление, изменение и пр.), процедур на получение информации о правах пользователя и при этом все пользователи все работают под учётной записью --------- Надо разделять логику разграничения прав доступа, логику поддержания целостности БД и бизнес-логику приложения, а не валить все в одну кучу:) --------- надо. Для этого на сервере средств достаточно. Переносить это на клиента - сизифов труд и добавление проблем с доступом Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 19:00 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
не надо упорствовать Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 19:01 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
1024 --------- это неправильно. Таким образом ты отказываешся от предоставляемых сервером средств по разделению прав доступа и пытаешся создать их сам. 1.Лишняя работа, 2.лучше чем в скл сервере сделать практически невозможно, 3.могут быть ошибки в твоём коде. 4.Кроме того если права на доступ к данным прописаны на сервере то никакой пользователь никакими средствами не сможет ни посмотреть ни изменить то что ему не разрешено, вопросы с аксесом/екселом просто не возникают если не ясно как можно организовать разграничения прав в скл сервере можно посмотреть документацию к нему, в конечном итоге это будет эффективней Не согласен, что это не правильно. Средства управления доступом в SQL Server (логины, пользователи, роли, разрешения) плохо согласуются с бизнес логикой приложения. Согласитесь, что гораздо проще и правильней не дать возможность пользователю делать то, что ему не положено, а не получать с сервера ошибку типа denied access. Сервер дает возможность управлять правами на уровне ОБЪЕКТОВ сервера (таблица, колонка, процедура ии пр.), а в приложении права даются на уровне бизнес объектов приложения (документов, справочников, отчетов и пр.). Связать их очень не просто, значительно проще все это сделать через приложение. Например так http://www.caws.atnet.ru/vfox/sql6.html. И не надо упорствовать :) С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 08:37 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Aleksey-KИ не надо упорствовать :)... Некоторые ребята из Microsoft рекомендуют подход, описанный FoxLamer... Хотя как я понял, оба подхода имеют право на жизнь... Да и в вечном споре что лучше - клиент-сервер или файл-сервер Microsoft занял тоже интересную позицию - для ряда задач проще, быстрее и выгоднее писать файл-серверные приложения... Сколько людей, столько мнений... But anyway, good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 09:30 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Как назначить разрешения для роли на все объекты базы данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 10:08 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
novaКак назначить разрешения для роли на все объекты базы данных? 1. Через код: команда T-SQL GRANT. Посмотрите в BOL ее синтаксис. В зависимости от объекта, синтаксис разный. 2. Через EM. Находите требуемую роль, двойным щелчком на ней и кнопка Permissions. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 10:49 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
да, можно по разному, но такие высказывания: авторСредства управления доступом в SQL Server (логины, пользователи, роли, разрешения) плохо согласуются с бизнес логикой приложения. Согласитесь, что гораздо проще и правильней не дать возможность пользователю делать то, что ему не положено, а не получать с сервера ошибку типа denied access. Сервер дает возможность управлять правами на уровне ОБЪЕКТОВ сервера (таблица, возникают вероятно от незнания/недостаточного опыта по работе с скл серверами и самим скл. Нормально там всё с согласованием бизнес логики и управлением доступом. у меня тоже ссылка есть: http://sss1024.narod.ru/ver.htm , всё там прекрасно согласуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 11:02 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Кстати Микрософт сама движется к тому, чтобы отделить пользователей от владения объектами БД. Начиная с 7 версии введена роль приложения. А в MSSQL2005 реализовано назначение прав на объекты БД через схемы. Так гораздо удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 11:24 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
1024возникают вероятно от незнания/недостаточного опыта по работе с скл серверами и самим скл. Нормально там всё с согласованием бизнес логики и управлением доступом. Насчет моего опыта с SQL ... Давайте не переходить на личности... Я работаю с SQL, начиная с верисии 6.0 и читаю ВСЕ курсы по SQL (2071, 2072, ....2093) в одном из Московских учебных центров Microsoft ...Лучше подтвердите свои высказывения примерами. На вашей страницы я не нашел НИЧЕГО, относящегося к вопросу темы. Что ТАМ "всё с согласованием бизнес логики и управлением доступом."? (ваша цитата). И где там? Если вы про SQL Server, то там ничего не согласовано с бизнес логикой. Приведите пример, что имеется в виду. Каким образом, например, администратор программного комплекса (не SQL Server) может управлять доступом к бизнес - обьектам средствами самого SQL Server? Он что должен запускать EM или QA? Как правило, одному бизнес-объекту в системе соответствует несколько объектов базы данных (таблицы, храним. процедуры и пр.). Кто будет решать ДИНАМИЧЕСКИ к камим объектам давать доступ при требовании доступа конкретному пользователю к, например, материальному отчету? Администратор базы данных слов таким просто не знает - "материальный отчет", а администратора системы не представляет какие объекты базы данных отвечают за данный бизнес-объект. Это знает только разработчик. И через клиентское приложение свои знания может реализовать в виде, например, такой формы VFP. Слева выделены пользователи системы, а слева - их права на бизнес-объекты системы. Еще одно. Вы что-же будут давать права db_onwer или, даже sysadmin администратору базнес-логики ? А не страшно ? Далее... Вы вообще представляет, сколько может быть объектов базы данных в реальной большой системе? У нас в системе их несколько тысяч. И кто будет разбираться с правами на эти объекты? Буду ждать вашего ответа на эти вопросы. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 11:53 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Вот форма VFP для управления доступа к объектам бизнес - логики. А вы предлагаете что ? Запускать администратору бизнес-логики EM и проставлять права на таблицы, хранимые процедуры и пр.? Для большой системы это не пройдет. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 11:57 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
зависит от того как спроектирована база данных. Можно всё вывалить в одну плоскую таблицу а контроль целостности и прав доступа/ модификации реализовать в клиентском приложении. В ряде случаев такой подход имеет место ------------ Как правило, одному бизнес-объекту в системе соответствует несколько объектов базы данных (таблицы, храним. процедуры и пр.). Кто будет решать ДИНАМИЧЕСКИ к камим объектам давать доступ при требовании доступа конкретному пользователю к, например, материальному отчету? Администратор базы данных слов таким просто не знает - "материальный отчет", а администратора системы не представляет какие объекты базы данных отвечают за данный бизнес-объект. Это знает только разработчик. И через клиентское ------------ в идеале кто куда имеет доступ решает проектировщик, для админа существует документация по администрированию, программист пишет по ТЗ. В реальности конечно во многих случаях получается не просто "Это знает только разработчик" а один конкретный кусок приложения знает один человек, другой кусок - другой человек и т.д. Но это уже вопрос управления проектами а не доступом к данным в приложении ------------- Далее... Вы вообще представляет, сколько может быть объектов базы данных в реальной большой системе? У нас в системе их несколько тысяч. И кто будет разбираться с правами на эти объекты? ------------- ну и что хорошего в том что даже разработчики толком не знают как это всё работает? Проблема больших систем существует, да. У многих так (и в у меня в конторе, разумеется). Но проблемы нужно решать. Опять же к вопросам о доступе к данным это отношения не имеет. Это проблемы управления проектами Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:09 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Aleksey-K Алексей. Вопрос не по делу, для чего нужен SplitBar у грида справа внизу/каков тайный смысл ;) - похоже на наследие прошлого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:16 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Сразу оговорюсь - пишу про наши программы/комплексы, у которых не я разработчик. Итак: 1) Если приложение/база небольшие (автоматизация одного/нескольких участков бизнес-процесса) - реализовано как у FoxLamer, т.е. - ODBC connect через некоего SQL User, входящего в роль db_owner. - Пользователи/пароли/доступ к функциям приложения - через список пользователей самого приложения. Недостаток известен - для "особо продвинутых пользователей" никто не запретит подключиться к базе через это соединение - результат может быть плачевен. 2) Для больших баз/"серьезных" приложений - ODBC connect с Windows или Mixed авторизацией со стороны клиента, соответственно эти же пользователи/группы присуствуют В SQL Logins с правами роли public. - В базе хранятся те же пользователи/группы со своими правами доступа к объектам бизнес-логики, соответственно в приложении имеется отдельный административный модуль для настройки этих прав (а уж как они физически реализованы - проверкой ли в ХП, выполнением GRANT при изменении прав или еще как - для администратора программного комплекса "тайна сия великая есть"). Недостатки известны и здесь - некоторые сложности при раздаче прав - нужно хорошо ориентироваться в системе защиты данных комплекса (ну на то разработчики и должны документацию писАть), хотя существуют утилитки (для SQL, а также и для самих комплексов), которые хоть в какой-то мере позволяют управлять правами, не ползая в приложение, EM, QA и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:19 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
автор1) Если приложение/база небольшие (автоматизация одного/нескольких участков бизнес-процесса) - реализовано как у FoxLamer, т.е. - ODBC connect через некоего SQL User, входящего в роль db_owner. - Пользователи/пароли/доступ к функциям приложения - через список пользователей самого приложения. Недостаток известен - для "особо продвинутых пользователей" никто не запретит подключиться к базе через это соединение - результат может быть плачевен. Вы меня поняли с точностью до наоборот. У меня как раз реализован доступ таким образом, что юзеры не имеют на сервере учетных записей. И именно для того, чтобы запретить подключаться напрямую к серверу из других приложений. На сервере создается всего 2 записи: 1-FirstLogin для запуска единственной процедуры, которая читает таблицу пользователей 2-App для работы самого приложения, пароль которой даже администратор не знает, т.к. он формируется автоматически в момент первого запуска программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:39 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
2-App для работы самого приложения, пароль которой даже администратор не знает, т.к. он формируется автоматически в момент первого запуска программы. ----------- именно об этом и говорят: никогда не говори "никогда", если кто-то узнает сгенерённый пароль (конечно это не возможно и приложены все усилия для этого, хотя где-нить какя-то дырка обычно есть) то он сможет делать всё что захочет кстати, сложность приложения это тож своеобразная защита, вон в 1ц например, что-нить напрямую в бд поменять - надо ещё узнать где менять Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:45 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Кстати, AndreTM, а какой у Вас критерий большой базы\"серьезного" приложения. 60 БД на сервере(головной офис и филиалы) каждая с несколькими сотнями ХП и таблиц большая или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:45 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
авторименно об этом и говорят: никогда не говори "никогда", если кто-то узнает сгенерённый пароль (конечно это не возможно и приложены все усилия для этого, хотя где-нить какя-то дырка обычно есть) то он сможет делать всё что захочет В Вашем варианте вероятность получить несанкционированный доступ к данным гораздо выше, т.к. пользователи имеют учетные записи на сервере и прямой доступ к его объектам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33462184&tid=1592672]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 466ms |

| 0 / 0 |
