AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2008, 19:37   #1  
dburtsev is offline
dburtsev
Участник
 
8 / 10 (1) +
Регистрация: 22.07.2008
Thumbs up
Если добавить новое поле в таблицу, то приходится синхронизировать всех пользователей. В качестве временной меры дали пользователям права владельца базы. Откуда копать?

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  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Версия нава?
Если 4х и SQL 2005 - бесполезно.. у нас все dbo..
Может кто с опытом подскажет, на 4-м клиенте можно ли обойтись без роли dbo для пользователей?
Благо на SQL не нужно давать sysadmin)) это мы гоняли клиента 3.7..
Старый 22.07.2008, 21:40   #3  
dburtsev is offline
dburtsev
Участник
 
8 / 10 (1) +
Регистрация: 22.07.2008
NAV 4.0 SP3. SQL 2005 SP2

А если вместо SQL юзеров использовать Windows, то тогда можно работать нормально?
Старый 22.07.2008, 23:40   #4  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Да, проблема знакома.
Начиная с 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  
dburtsev is offline
dburtsev
Участник
 
8 / 10 (1) +
Регистрация: 22.07.2008
Цитата:
Сообщение от Kashin Посмотреть сообщение
только посредством кумулятивного выпуска некоего Service Pack компании и т.д.
Можно ли написать программу, синхронизирующую сразу нескольких и/или всех пользователей? А то у нас синхронизируют по одному, вручную.
Старый 05.11.2009, 20:19   #6  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Kashin Посмотреть сообщение
Да, проблема знакома.
После этого снова её изменить и на закладке Дополнительно (Advanced) изменить свойство Security Model в Standard.
Сегодня SQL 2005 Express + NAV 5 RU всем доменным пользователям поменял схему по умолчанию dbo на на схему пользователя (свою для каждого). На закладке Дополнительно (Advanced) свойство Security Model = Enchanced. Операций с пользователями не делали и раньше все было синхронизирровано. Почему так произошла - не могу понять. Кто-то с таким сталкивался?
Старый 04.07.2011, 15:04   #7  
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 они, как я понял, никак не влияют. Помогите разобраться, пожалуйста.
Старый 04.07.2011, 15:22   #8  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Stalker83 Посмотреть сообщение
А не могли бы вы пояснить, где связь между правами доступа в SQL server и NAV. Почему они не равнозначны. Посредством чего клиент получает права.
При Enchanced модели права на доступ к данным более-менее равнозначны. Т.е. если в NAV у пользователя есть доступ к данным определенной таблицы, то и в SQL будет. Если нет, то и в SQL - нет. Связь между системами (синхронизацию прав) осуществляет пользователь через клиент NAV посредством команды "Синхронизировать все" (или Синхронизировать конкретного пользователя). Добавили/удалили таблицу (tabledata) в роль, запустили синхронизацию - на данные таблицы соответсвующие пользователи получили доступ и в SQL Server.
Также нужно помнить, что в NAV можно ограничить доступ не только к данным, но и к самим объектам (формам, отчетам, кодеюнитам). Это никак не синхронизируется с SQL, но при работе в NAV учитывается.
Цитата:
Сообщение от Stalker83 Посмотреть сообщение
Допустим, через клиент я вижу данные таблицы, а через запрос не могу.
Если вы делаете запрос к БД под тойже учетной записью, что и логинитесь в NAV, то различий быть не должно, запрос должен возвращать данные.
Цитата:
Сообщение от Stalker83 Посмотреть сообщение
Как можно зайти в права пользователя через Management Studio? Где они хранятся на SQL-server?
Читайте BOL.
Цитата:
Сообщение от Stalker83 Посмотреть сообщение
Если зайти в свойства пользователя базы данных, там можно настраивать права, но на NAV они, как я понял, никак не влияют. Помогите разобраться, пожалуйста.
Смотря как настраивать - если в сторону расширения, то не повлияют - NAV пользуется своей системой безопасности. Если в сторону уменьшения - то еще как повлияют.
Старый 23.07.2008, 21:00   #9  
max_hl_imported is offline
max_hl_imported
Участник
 
45 / 10 (1) +
Регистрация: 28.07.2006
Огромное спасибо за комментарии!
Я, чесно говоря, полагал, что Enchanced - это для фильтров по полям таблиц для ролей пользователей..
Чую, завтра нас ждут перемены))
К тому же, заведение новых пользователей - дело достаточно редкое, а синхронизацией не пользуюсь принципиально!
Старый 23.07.2008, 23:21   #10  
dburtsev is offline
dburtsev
Участник
 
8 / 10 (1) +
Регистрация: 22.07.2008
Спасибо
У нас именно Enchanced.
Буду трясти разработчиков, что бы объяснили зачем использовать Enchanced Security и давать всем пользователям статус владельца базы данных.
Старый 24.07.2008, 00:18   #11  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от dburtsev Посмотреть сообщение
зачем использовать Enchanced Security и давать всем пользователям статус владельца базы данных.
Лучше использовать Standard и обыкновенные права пользователей в таком случае.
Цитата:
Можно ли написать программу, синхронизирующую сразу нескольких и/или всех пользователей? А то у нас синхронизируют по одному, вручную.
Есть две опции стандартно:
Синхронизировать Пользователя
и Синхроизировать всё.
Делать это надо вручную. Ну или посредством посыла кнопок через WSH Sendkeys.
Старый 24.07.2008, 00:56   #12  
dburtsev is offline
dburtsev
Участник
 
8 / 10 (1) +
Регистрация: 22.07.2008
:)
Цитата:
Сообщение от Kashin Посмотреть сообщение
Ну или посредством посыла кнопок через WSH Sendkeys.
Т.е. на встроенном C/side language никак. Ох...
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:53.