Показать сообщение отдельно
Старый 04.07.2011, 15:04   #11  
Stalker83 is offline
Stalker83
Участник
 
17 / 10 (1) +
Регистрация: 02.03.2009
Цитата:
Сообщение от 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.
А не могли бы вы пояснить, где связь между правами доступа в SQL server и NAV. Почему они не равнозначны. Посредством чего клиент получает права.
Допустим, через клиент я вижу данные таблицы, а через запрос не могу. Модель безопасности - Enchanced. Как можно зайти в права пользователя через Management Studio? Где они хранятся на SQL-server? Если зайти в свойства пользователя базы данных, там можно настраивать права, но на NAV они, как я понял, никак не влияют. Помогите разобраться, пожалуйста.