|
|
|
Права пользователя при подключении к 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 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
тьфу, бл. Чё за фигня?!! ================ т.к. пользователи имеют учетные записи на сервере и прямой доступ к его объектам. ================= если кто-то даёт пользователям права дбовнера - причём тут я?!! Пользователи имеют ровно те права которые им назначены. Подключаться они могут из чего угодно и делать что угодно. Но если Иванову запрещено видеть суммы по сделкам а товары в сделках он может только посмотреть но не менять то никаким образом он не сможет ни посмотреть суммы не изменить/добавить/удалить товары. Это гарантирует скл сервер. Не надо пожалуйста писать такого. Работа всех пользователей под админским аккаунтом это очень плохо Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:01 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
При использовании роли приложения не стоит забывать о следующем: Microsoft BOLThere are several options for managing application role passwords without hard-coding them into applications. For example, an encrypted key stored in the registry (or a SQL Server database), for which only the application has the decryption code, can be used. The application reads the key, decrypts it, and uses the value to set the application role. Using the Multiprotocol Net-Library, the network packet containing the password can also be encrypted. Additionally, the password can be encrypted, before being sent to an instance of SQL Server, when the role is activated А использовать Multiprotocol Net-Library с шифрованием не всегда возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:03 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Постойте господа! :) Может быть вы мне и подскажите как мне реалезовать логику и права? Будет работать порядка 20 пользователей с одной базой. Все пользователи будут делать одно и тоже, т.е вводить данные и затем в конце дня необходимо получть статистику, кто что ввел. Ну еще будет один пользователь, у которого будут расширенные права, т.е. менять пароли для пользователей и создавать или удалять пользователей. Все на уровне клиентского приложения, чтобы как можно меньше подходить к серверу. Вот и все. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:05 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
2 oleg_km В приведенной выдержке сказано об использовании Multiprotocol Net-Library как одного из нескольких вариантов. Я использую другой вариант. 2 1024 авторРабота всех пользователей под админским аккаунтом это очень плохо Полностью согласен. Поэтому пользователи у меня не имеют прямого доступа на сервер. 2 nova Здесь были рассмотрены 2 основных варианта. Вам выбирать)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:31 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Кстати, 1024, как Вы будете удалять пользователя, если он является влядельцем нескольких сотен объектов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:33 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Полностью согласен. Поэтому пользователи у меня не имеют прямого доступа на сервер. ------------------------ мда... Ты путаешь. У тебя все пользователи работают под одним аккаунтом. И имеют доступ на сервер в соответствии с правами этого аккаунта. Насколько я понимаю под админским. Если кто-то узнает логин/пароль то сможет сделать всё (пароль же где-то хранится, рефоксом можно расковырять в конце концов). Или в твоём модуле авторизации найдётся ошибка. Или ещё что. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:36 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Кстати, 1024, как Вы будете удалять пользователя, если он является влядельцем нескольких сотен объектов? ------------- обекты БД это таблицы, триггеры и пр. Это если по администрированию вопрос. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:38 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
авторТы путаешь. У тебя все пользователи работают под одним аккаунтом Еще раз повторю. У меня не пользователи работают под одним аккаунтом, а приложение. Пользователи не знают аккаунт приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:45 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
не всё на самом деле так как кажется. Пользователи работают с программой, программа подключается к серверу с использованием админского аккаунта, всё что делал пользователь в программе будет выполняться программой от имени админа. Если проверка прав в программе содержит ошибку и пользователь сделает то что ему не позволено (дропнет таблицу к примеру или удалит пару строчек) то программа выполнит это от имени админа. Т.к. админ имеет все права на сервере то сервер позволит ему (а значит программе, а значит пользователю) всё что потребуется. Кроме того пользователь может узнать пароль/логин от имени которого программа работает с сервером и работать с сервером из другой программы в которой нет твоего блока проверки прав (из аналайзера например). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 13:58 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
2 1024 автор Если проверка прав в программе содержит ошибку и пользователь сделает то что ему не позволено (дропнет таблицу к примеру или удалит пару строчек) то программа выполнит это от имени админа. Т.к. админ имеет все права на сервере то сервер позволит ему (а значит программе, а значит пользователю) всё что потребуется. Ошибка может быть и в программе, которая раздает права пользователям. Или администратор БД может ошибиться. автор Кроме того пользователь может узнать пароль/логин от имени которого программа работает с сервером и работать с сервером из другой программы в которой нет твоего блока проверки прав (из аналайзера например). И аккаунт SA пользователь может узнать и с таким же успехом работать из QA. Только аккаунт приложения узнать сложнее, т.к. он лежит в зашифрованном виде на сервере, к которому у пользователя нет прямого доступа. А вообще мы занимаемся переливанием из пустого в порожнее. Пусть каждый делает так как считает нужным) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 14:21 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
ну, ничего страшного в таком подходе нет, 1ц например также работает в силу исторических причин. Но нужно понимать какие минусы он несёт и не путать причины со следствиями. Возможность испортить данные при работе сторонними средствами это не причина а следствие отказа от использования инструментов скл сервера Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 14:28 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Хорошо, допустим, пользователь прошел проверку на сервере, где он есть в таблице пользователей. А где тогда хранить то, под какой ролью он будет работать?. Т.е. как я понимаю, тогда надо заводить несколько ролей, т.к. разные пользователи будут работать с разными правами. И получается возвращать приложению, что-то вроде кода роли, а затем в приложении еще делать проверку, если код роли такой-то, то можно вызвать ХП. Правильно ли я вас понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 14:56 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
не надо в приложении ничего проверять, надо просто обрабатывать возвращаемые ошибки, например ok=sqlexec(cn,"чёто выбрать или удалить или выполнить if ok<0 messagebox(message(),16,'Ошибка') endif разумеется пользователю нужно показывать не текст ошибки а какое-то объяснение, если нужно делать какие-то вещи типа задизаблить пункты меню которые юзеру сервер не позволит выполнить может потребоваться узнать кто подключился. Для мс скл сервера например это select system_user Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 15:15 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Hi 1024! Тут возникает классическая "некрасивость" К/С систем - унесли всю логику со слоя представления на средний слой или вовсе backend - и теперь приходится не "по ходу дела" поправлять пользователя (не вводи дату меньше сегодняшнего дня, не оставляй это поле пустым...) а лишь при сохранении поймав ошибку "радовать" пользователя тем что "ты видать совсем уж глуп, ежели дату проведения документа на воскресный день выставил"... Конечно можно дублировать наиболее простые проверки и в слое интерфейса, но всё-же проблема имеет место быть... Т.е. мы не предотвращаем ошибки, а лишь постфактум их определяем и ругаем пользователя (хотя его не за что ругать то :) это недосмотр разработчика). Или другой простой пример - вот нету у пользователя прав на такой-то и такой-то объект - и значит он не может построить отчёты # 1,2,3,4,5 ... зато другие отчёты - запросто. Отчётов предположим не один десяток - и что теперь делать? Предлагать пользователю ВЕСЬ список, а потом с особым садизмом сообщать "ты куда плебей полез - не по Сеньке шапка - брысь отсюда", или всё-же поступить гуманно и СРАЗУ убрать из меню (ну или как там список отчётов представлен) те пункты, которые пользователю не доступны... В общем права на сервере это неплохо, но они не решают ВСЕХ проблем администрирования. Другое дело, что они и НЕ ПРОТИВОРЕЧАТ той схеме например про какую Алексей говорил - т.е. двойная защита - и права на таблицы, и разные "роли" и "внешние права" которые позволяют сделать приложение более дружественным... Конечно трудно сделать такое программное соответствие между этими 2-мя системами, чтобы всё было корректно - но попробовать стоит. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 00:40 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
PaulWist Aleksey-K Алексей. Вопрос не по делу, для чего нужен SplitBar у грида справа внизу/каков тайный смысл ;) - похоже на наследие прошлого. Так два поля выводятся, а второе длинное. Иногда пользователю удобнее зафиксировать код подразделения. С уваженем, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 08:33 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi 1024! Тут возникает классическая "некрасивость" К/С систем - унесли всю логику со слоя представления на средний слой или вовсе backend - и теперь приходится не "по ходу дела" поправлять пользователя (не вводи дату меньше сегодняшнего дня, не оставляй это поле пустым...) Это так???!!! А я-то долго думал, почему в наших приложениях, написанных в Oracle Forms, очень часто позникает ошибка (точно в оригинале не передам), но вроде как "Введенная строка превышает допустимую длину..." Я, когда такое вижу - диву даюсь.. Неуж-то Оракл Формс не позволяют ввести, ну хотя бы маску на длину введенного...Ну, или нельзя было внутри обрезать до нужного количества символов? Или же это просто разработчики "забили" на такие "мелочи" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 09:31 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
FM32YO aka KID А я-то долго думал, почему в наших приложениях, написанных в Oracle Forms, очень часто позникает ошибка (точно в оригинале не передам), но вроде как "Введенная строка превышает допустимую длину..." Я, когда такое вижу - диву даюсь.. Неуж-то Оракл Формс не позволяют ввести, ну хотя бы маску на длину введенного...Ну, или нельзя было внутри обрезать до нужного количества символов? Или же это просто разработчики "забили" на такие "мелочи" ? Интересный вопрос Но все программы, которые я видел на Oracle Forms всегда оставляли желать лучшего, много лучшего... У меня даже сложилось нехорошее мнение, что у программистов их писавших (язык не поворачивается назвать их программистами) квалификация обратно пропорциональна непомерно раздутой заработной плате... P.S. Это всего лишь мое личное наблюдение и абсолютно не претендует на истину... Понимаю, что все зависит от людей, а так как з/п в вакансиях со словом Oracle зашкаливает сегодня, вот туда и "ломанулись" все ребята, кто раньше даже и VFP толком не мог освоить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 10:18 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
2 FoxLamer FoxLamer В приведенной выдержке сказано об использовании Multiprotocol Net-Library как одного из нескольких вариантов. Я использую другой вариант. А какой, если не секрет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 10:43 |
|
||
|
Права пользователя при подключении к SQL серверу
|
|||
|---|---|---|---|
|
#18+
Тут возникает классическая "некрасивость" К/С систем - унесли всю логику со слоя представления на средний слой или вовсе backend - и теперь приходится не "по ходу дела" поправлять пользователя (не вводи дату меньше сегодняшнего дня, не оставляй это поле пустым...) а лишь при сохранении поймав ошибку "радовать" пользователя тем что "ты видать совсем уж глуп, ежели дату --------------------------------- это зависит от того как сделано приложение. Если лень то можно так, но пользователям будет неудобно. Можно дублировать где-то описание того что пользователь может/неможет. С точки зрения интерфейса так будет лучше но конечно кода большк. В любом случае как-бы удобно/красиво/криво/неудобно приложение ни было сделано, если логика и секурите реализуется средствами сервера то больше гарантий что ничего не предусмотренного правилами не произойдёт. Не стоит оправдывать кривой интерфейс клиент-серверной (файл-серверной, многоуровневой) архитектурой. Кривой интерфейс это интерфейс который сделан криво. Приемлимый интерфейс требует много усилий, хороший интерфейс требует очень много усилий, плохой же усилий не требует вовсе, накидал контролов на форму и фик с ним. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 10:55 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592672]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
317ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 644ms |

| 0 / 0 |
