Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Построение системы аудита; MS Access frontend на сервере SQL backend
Поэтому в основном я создаю приложение для своей компании, и оно NEEDS должно быть построено с использованием MS Access, и оно должно быть построено на сервере SQL.
Я составил большинство планов, но мне трудно понять, как справиться с системой аудита.
Поскольку он используется только внутри, и вы даже не сможете коснуться БД снаружи здания, мы не используем систему входа в систему, поскольку программа будет использоваться только после того, как пользователь уже вошел в нашу внутреннюю сеть через Active Directory. Зная это, мы используем систему для автоматического определения имени пользователя Active Directory и их разрешений в одной из таблиц DB, решая, что они могут или не могут делать.
Таким образом, фактическая таблица аудита будет иметь 3 столбца (этот дизайн может измениться, но для этого вопроса это не имеет значения); кто (пользователь Active Directory), когда (время addition/deletion/edit), что (что было изменено)
Мой вопрос в том, как я должен справиться с этим. В идеале я знаю, что должен использовать триггер, чтобы база данных не обновлялась без регистрации аудита, однако я не знаю, как я мог бы захватить пользователя Active Directory таким образом. Альтернативой было бы закодировать его непосредственно в источнике доступа, чтобы всякий раз, когда что-то меняется, я запускал оператор INSERT. Очевидно, что это неправильно, потому что если что-то происходит с доступом или база данных затронута чем-то другим, то она не будет регистрировать аудит.
Любые советы, примеры или статьи, которые могут мне помочь, будут очень признательны!
Хорошо, это работает здесь. Я вижу свои учетные данные windows, когда обновляю свои таблицы. Так что, держу пари, мы пропустили шаг. Позвольте мне составить последовательность 1,2,3 того, что я сделал, и, возможно, мы сможем отследить, где это ломается для вас.
- Создайте новую базу данных MSAccess (пустую)
- Нажмите на раздел таблицы
- Выберите внешние данные
- Выберите базу данных ODBC
- Выберите ссылку на источник данных, создав связанную таблицу
- Выберите источник данных машины
- Выбрать Новый...
- Системный Источник Данных
- Выберите SQL сервер из списка и нажмите кнопку Далее, Готово.
- Дайте новому источнику данных имя и описание, а затем выберите (локальный) для сервера. нажимать далее.
- Выбрать "With Windows NT authentication using the network login ID". нажимать далее.
- Установите флажок изменить базу данных по умолчанию на, и выберите DB. нажимать далее. нажать кнопку Finish.
- Проверьте источник данных.
- Выберите таблицу, с которой связан триггер, и нажмите кнопку OK.
- Откройте таблицу в Access и измените одну из записей (триггер не срабатывает при вставке, просто обновите)
- Выберите * из таблицы аудита
Конечно :)
В Access должен быть раздел под названием "External Data" (я запускаю новую версию Access, поэтому выбор меню может быть другим).
В этой форме должна быть возможность указать соединение ODBC.
Я получаю возможность связать с источником данных, создав связанную таблицу.
Затем я создал машинный источник данных. Я выбрал SqlServer из выпадающего списка. Затем, когда я нажму кнопку Далее,мне будет предложено выполнить проверку подлинности.
У нас также есть система баз данных, которая используется исключительно внутри организации и использует окно NT Логинов. Эта функция возвращает имя Входа текущего пользователя:
CREATE FUNCTION dbo.UserName() RETURNS varchar(50)
AS
BEGIN
RETURN (SELECT nt_username FROM master.dbo.sysprocesses WHERE spid = @@SPID)
END
Вы можете использовать эту функцию в своих триггерах.
вам нужно подключиться с интегрированной безопасностью aka trusted connection см. ( http://www.connectionstrings.com/?перевозчик=SQLServer, в )
Мое решение будет заключаться в том, чтобы не позволять Access изменять данные со связанными таблицами.
Я бы только создал UI в Access и создал соединение ADO с сервером, используя windows, прошедшее проверку подлинности в строке подключения. Компиляция вы получаете доступ к приложению как dbe для защиты кода VB.
Я не буду выдавать инструкцию SQL, но я вызову хранимые процедуры для выполнения изменений в базе данных и создам запись журнала аудита в атомарной транзакции.
UI (Access) не должен знать, что внутренний работает на сервере. Все, что ему нужно сделать, это запросить и update/insert/delete, используя хранимые процедуры, которые вы создадите для этой цели. Сервер должен справиться с этой работой.
Извлеките набор записей с ADO, используя представление с подсказкой NOLOCK, реализованное на сервере, и кэшируйте эти данные в Access for local display. Или извлеките одну запись и заблокируйте только эту строку для редактирования.
Используя связанные таблицы, ваши пользователи будут блокировать друг друга.
С подключением ADO у вас не будет проблем с установкой ODBCs на каждом отдельном клиенте.
Создайте таблицу для установки состояния сервера. Вы приложение будет проверять его перед любым действием. вы можете использовать его, чтобы закрыть сервер для приложения в случае, если вам нужно выполнить изменения или техническое обслуживание.
Доступ-это отличный инструмент. Но он должен обрабатывать только свои локальные данные и не иметь права связываться с драгоценным сервером.