|
22.07.2008, 19:37 | #1 |
Участник
|
Если добавить новое поле в таблицу, то приходится синхронизировать всех пользователей. В качестве временной меры дали пользователям права владельца базы. Откуда копать?
Microsoft Business Solutions-Navision The following SQL Server error(s) occurred while accessing QWE table: 229, '42000', [Microsoft][ODBC SQL server Driver][SQL Server]The SELECT permission was denied on the object QWE, database ZXC, schema 'qwe' сам я администратор SQL Server и считаю неправильным включать всех юзеров в группу db_owner> Однако, разработчики утверждают, что другого выхода нет. Авторизация пользователей через SQL а не Windows |
|
22.07.2008, 20:18 | #2 |
Участник
|
Версия нава?
Если 4х и SQL 2005 - бесполезно.. у нас все dbo.. Может кто с опытом подскажет, на 4-м клиенте можно ли обойтись без роли dbo для пользователей? Благо на SQL не нужно давать sysadmin)) это мы гоняли клиента 3.7.. |
|
22.07.2008, 21:40 | #3 |
Участник
|
NAV 4.0 SP3. SQL 2005 SP2
А если вместо SQL юзеров использовать Windows, то тогда можно работать нормально? |
|
22.07.2008, 23:40 | #4 |
Участник
|
Да, проблема знакома.
Начиная с 4-й версии добавился новая модель безопасности - Enchanced. Старая модель основывалась на безопасности роли приложения $ndo$shadow с которой Навижн подключался к базе данных. При такой системе нет необходимости синхронизировать безопасность на уровне пользователей, но и не-dbo пользователи к базе данных напрямую подключиться не могут, например, для выполнения SQL-запроса. Также, подобная система немного не секьюрная, так как существуют взломанные клиенты Nav, игнорирующие встроенную ситему безопасности Nav, а проверки доступа на уровне SQL не производится. Новая же система предполагает настройки прав доступа к каждой таблице каждой фирмы, для каждого пользователя. Естественно, если у вас в базе 5 фирм (800 * 5 =4000 таблиц), да 100 пользователей, то процесс синхронизации безопасности Нав с SQL может происходить достаточно долго. Но при таком способе повышается уровень безопасности (независимость от клиента) и появляется возможность у пользователей напрямую обращаться к таблицам SQL, например посредством Excel. Я считаю, что Enchanced модель безопасности лучше старой, а проблему необходимости постоянной синхронизации необходимо и нужно сводить к минимуму. А именно: вводить регламенты программирования и обновлений, когда нельзя на реальную базу поставить какие-либо объекты или исправления, только посредством кумулятивного выпуска некоего Service Pack компании и т.д. Но, давать всем пользователям права dbo - это смерти подобно. Лучше вернуться к старой системе безопасности. Для этого необходимо Файл - База Данных - Изменить (File -Database - Alter). Установить базу в Однопользовательский режим (Single User) на закладке Опции(Options). После этого снова её изменить и на закладке Дополнительно (Advanced) изменить свойство Security Model в Standard. |
|
23.07.2008, 23:25 | #5 |
Участник
|
|
|
05.11.2009, 20:19 | #6 |
Участник
|
Сегодня SQL 2005 Express + NAV 5 RU всем доменным пользователям поменял схему по умолчанию dbo на на схему пользователя (свою для каждого). На закладке Дополнительно (Advanced) свойство Security Model = Enchanced. Операций с пользователями не делали и раньше все было синхронизирровано. Почему так произошла - не могу понять. Кто-то с таким сталкивался?
|
|
04.07.2011, 15:04 | #7 |
Участник
|
Цитата:
Сообщение от Kashin
Да, проблема знакома.
Начиная с 4-й версии добавился новая модель безопасности - Enchanced. Старая модель основывалась на безопасности роли приложения $ndo$shadow с которой Навижн подключался к базе данных. При такой системе нет необходимости синхронизировать безопасность на уровне пользователей, но и не-dbo пользователи к базе данных напрямую подключиться не могут, например, для выполнения SQL-запроса. Также, подобная система немного не секьюрная, так как существуют взломанные клиенты Nav, игнорирующие встроенную ситему безопасности Nav, а проверки доступа на уровне SQL не производится. Новая же система предполагает настройки прав доступа к каждой таблице каждой фирмы, для каждого пользователя. Естественно, если у вас в базе 5 фирм (800 * 5 =4000 таблиц), да 100 пользователей, то процесс синхронизации безопасности Нав с SQL может происходить достаточно долго. Но при таком способе повышается уровень безопасности (независимость от клиента) и появляется возможность у пользователей напрямую обращаться к таблицам SQL, например посредством Excel. Я считаю, что Enchanced модель безопасности лучше старой, а проблему необходимости постоянной синхронизации необходимо и нужно сводить к минимуму. А именно: вводить регламенты программирования и обновлений, когда нельзя на реальную базу поставить какие-либо объекты или исправления, только посредством кумулятивного выпуска некоего Service Pack компании и т.д. Но, давать всем пользователям права dbo - это смерти подобно. Лучше вернуться к старой системе безопасности. Для этого необходимо Файл - База Данных - Изменить (File -Database - Alter). Установить базу в Однопользовательский режим (Single User) на закладке Опции(Options). После этого снова её изменить и на закладке Дополнительно (Advanced) изменить свойство Security Model в Standard. Допустим, через клиент я вижу данные таблицы, а через запрос не могу. Модель безопасности - Enchanced. Как можно зайти в права пользователя через Management Studio? Где они хранятся на SQL-server? Если зайти в свойства пользователя базы данных, там можно настраивать права, но на NAV они, как я понял, никак не влияют. Помогите разобраться, пожалуйста. |
|
04.07.2011, 15:22 | #8 |
Участник
|
Цитата:
Также нужно помнить, что в NAV можно ограничить доступ не только к данным, но и к самим объектам (формам, отчетам, кодеюнитам). Это никак не синхронизируется с SQL, но при работе в NAV учитывается. Цитата:
Цитата:
Смотря как настраивать - если в сторону расширения, то не повлияют - NAV пользуется своей системой безопасности. Если в сторону уменьшения - то еще как повлияют. |
|
23.07.2008, 21:00 | #9 |
Участник
|
Огромное спасибо за комментарии!
Я, чесно говоря, полагал, что Enchanced - это для фильтров по полям таблиц для ролей пользователей.. Чую, завтра нас ждут перемены)) К тому же, заведение новых пользователей - дело достаточно редкое, а синхронизацией не пользуюсь принципиально! |
|
23.07.2008, 23:21 | #10 |
Участник
|
Спасибо
У нас именно Enchanced. Буду трясти разработчиков, что бы объяснили зачем использовать Enchanced Security и давать всем пользователям статус владельца базы данных. |
|
24.07.2008, 00:18 | #11 |
Участник
|
Цитата:
Цитата:
Можно ли написать программу, синхронизирующую сразу нескольких и/или всех пользователей? А то у нас синхронизируют по одному, вручную.
Синхронизировать Пользователя и Синхроизировать всё. Делать это надо вручную. Ну или посредством посыла кнопок через WSH Sendkeys. |
|
24.07.2008, 00:56 | #12 |
Участник
|
|
|