![]() |
#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 |
|
![]() |
#2 |
Участник
|
Версия нава?
Если 4х и SQL 2005 - бесполезно.. у нас все dbo.. Может кто с опытом подскажет, на 4-м клиенте можно ли обойтись без роли dbo для пользователей? Благо на SQL не нужно давать sysadmin)) это мы гоняли клиента 3.7.. |
|
![]() |
#3 |
Участник
|
NAV 4.0 SP3. SQL 2005 SP2
А если вместо SQL юзеров использовать Windows, то тогда можно работать нормально? |
|
![]() |
#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. |
|
![]() |
#5 |
Участник
|
Огромное спасибо за комментарии!
Я, чесно говоря, полагал, что Enchanced - это для фильтров по полям таблиц для ролей пользователей.. Чую, завтра нас ждут перемены)) К тому же, заведение новых пользователей - дело достаточно редкое, а синхронизацией не пользуюсь принципиально! |
|
![]() |
#6 |
Участник
|
Спасибо
У нас именно Enchanced. Буду трясти разработчиков, что бы объяснили зачем использовать Enchanced Security и давать всем пользователям статус владельца базы данных. |
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
Цитата:
Цитата:
Можно ли написать программу, синхронизирующую сразу нескольких и/или всех пользователей? А то у нас синхронизируют по одному, вручную.
Синхронизировать Пользователя и Синхроизировать всё. Делать это надо вручную. Ну или посредством посыла кнопок через WSH Sendkeys. |
|
![]() |
#9 |
Участник
|
![]() |
|
![]() |
#10 |
Участник
|
Сегодня SQL 2005 Express + NAV 5 RU всем доменным пользователям поменял схему по умолчанию dbo на на схему пользователя (свою для каждого). На закладке Дополнительно (Advanced) свойство Security Model = Enchanced. Операций с пользователями не делали и раньше все было синхронизирровано. Почему так произошла - не могу понять. Кто-то с таким сталкивался?
|
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от 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 они, как я понял, никак не влияют. Помогите разобраться, пожалуйста. |
|
![]() |
#12 |
Участник
|
Цитата:
Также нужно помнить, что в NAV можно ограничить доступ не только к данным, но и к самим объектам (формам, отчетам, кодеюнитам). Это никак не синхронизируется с SQL, но при работе в NAV учитывается. Цитата:
Цитата:
Смотря как настраивать - если в сторону расширения, то не повлияют - NAV пользуется своей системой безопасности. Если в сторону уменьшения - то еще как повлияют. |
|