Подключение к базе данных Microsoft Access
Подключение к базе данных Microsoft Access, защищенной паролем. Вскрытие пароля
Файл базы данных Microsoft Access, подобно другим документам Office, можно защитить с помощью пароля на открытие. Скопируйте файл BDTur_firm.mdb, с которым мы работали в первой главе, назовите его "BD_withPassword.mdb". Для установки пароля нам понадобится открыть базу в так называемом монопольном, однопользовательском режиме. Дело в том, что возможность установки пароля при одновременной работе нескольких пользователей1Microsoft Office Access 2003 поддерживает одновременную работу 255 пользователей. приводила бы к ошибкам, поэтому MS Access не предоставляет ее. Запускаем программу, в главном меню переходим "Файл \ Открыть", переходим в нужную директорию, выделяем файл, из выпадающего списка значений кнопки "Открыть" выбираем "Монопольно" (рис. 3.6):
Появляется окно базы данных. В главном меню переходим "Сервис \ Защита \ Задать пароль базы данных", в окне "Задание пароля базы данных" вводим пароль "12345" и подтверждаем его (рис. 3.7).
Теперь всякий раз при открытии этого файла на любом компьютере нужно будет вводить указанный пароль (рис. 3.8).
Для изменения пароля нам потребуется удалить существующий и затем задать новый. Снова открываем базу в монопольном режиме, в главном меню переходим "Сервис \ Защита \ Удалить пароль базы данных". В появившемся окне вводим текущий пароль, после нажатия кнопки "OK" он будет удален. Для ввода нового значения опять переходим к пункту меню "Задать пароль базы данных", на этот раз введем более сложный пароль "q1w2e3r4t5y6u7i8o9p0".
Защита файла с помощью пароля - крайне ненадежный способ, его нельзя применять в реальных приложениях. Пароль хранится в открытом виде, и его очень легко вскрыть. В Интернете множество утилит, предназначенных для этого, например, Access Password Recovery Genie (http://www.lenosoft.com). После запуска этой программы выбираем файл MS Access, пароль к которому нужно подобрать, - и пароль моментально появляется в главном окне (рис. 3.9).
Далее нам снова понадобится вводить пароль - чтобы не тратить время, установите снова его значение равным "12345". Займемся теперь подключением к файлу базы данных из приложений. Конечно, вы теперь будете сомневаться, применять ли вообще задание пароля как средство безопасности, но нам в любом случае нужно научиться подключаться даже к такой, "ненадежной" базе. Создайте новый Windows-проект и назовите его "VisualBD_withPassword". Из окна Toolbox перетаскиваем на форму элемент управления DataGrid, его свойству Dock устанавливаем значение "Fill". Переходим на вкладку Data дважды щелкаем на объекте OleDbDataAdapter. В появившемся мастере настраиваем подключение к файлу BD_withPassword.mdb. Теперь в окне "Свойства связи с данными" при проверке соединения появляется сообщение об ошибке (рис. 3.10):
Исходя из текста ошибки, возникает естественное желание снять галочку "Пустой пароль" и в поле пароля ввести "12345". Но и на этот раз возникает ошибка2Убедитесь также в том, что ваш файл базы данных не открыт в самой программе Microsoft Access. (рис. 3.11):
Дело в том, что интерфейс вкладки "Подключение" предназначен для ввода параметров учетной записи при защите на уровне пользователей. Далее мы рассмотрим ее. Здесь же снова устанавливаем галочку "Пустой пароль" и переходим на вкладку "Все". Дважды щелкаем на свойстве Jet OLEDB:Database Password (или, выделив его, нажимаем на кнопку "Изменить значение"), в появившемся окне "Изменение значения свойства" вводим пароль "12345" (рис. 3.12).
Переходим на вкладку "Подключение" - наконец нам удалось получить доступ к базе (рис. 3.13).
Нажимаем кнопку "OK" для закрытия окна "Свойства связи с данными", в следующих шагах мастера "Data Adapter Configuration Wizard" настраиваем извлечение всех записей из таблицы "Туристы". В последнем шаге мастера - включение пароля в строку connection string - выбираем кнопку "Include password"; мы будем изучать строку, сгенерированную мастером (рис. 3.14):
На панели компонент формы выделяем объект DataAdapter, переходим в его окно Properties и нажимаем на ссылку Generate dataset. Оставляем название объекта DataSet, предлагаемое по умолчанию. В конструкторе формы заполняем объект DataSet, а также определяем источник данных для элемента DataGrid:
public Form1() { InitializeComponent(); oleDbDataAdapter1.Fill(dataSet11); dataGrid1.DataSource = dataSet11.Tables[0].DefaultView; }
Здесь мы указываем индекс (равный нулю) единственной таблицы, находящейся в объекте DataSet.
Запускаем приложение. На форму выводятся данные из базы (рис. 3.15):
В программном обеспечении к курсу вы найдете приложение VisualBD_ withPassword и файл базы данных MS Access "BD_withPassword.mdb" (Code\Glava2\VisualBD_withPassword и BD_withPassword.mdb).
Сделаем точно такое же приложение без использования визуальных средств студии. Создайте новый Windows-проект, назовите его "ProgrammBD_withPassword". Добавляем на форму элемент управления DataGrid, его свойству Dock устанавливаем значение "Fill". Подключаем пространство имен для работы с базой:
using System.Data.OleDb;
В классе формы создаем строки connectionString и commandText:
string connectionString = @"Provider=""Microsoft.Jet.OLEDB.4.0" ";Data Source=""D:\Uchebnik\Code\Glava2\BD_withPassword.mdb" ";User ID=Admin;Jet OLEDB:Database Password=12345;"; string commandText = "SELECT * FROM Туристы";
Мы включили минимум параметров в строку подключения, среди которых указывается пароль базы:
Jet OLEDB:Database Password=12345;
В конструкторе формы создаем все объекты ADO .NET:
public Form1() { InitializeComponent(); OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = connectionString; OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandText, conn); DataSet ds = new DataSet(); dataAdapter.Fill(ds); dataGrid1.DataSource = ds.Tables[0].DefaultView; conn.Close(); }
В программном обеспечении к курсу вы найдете приложение ProgrammBD_ withPassword (Code\Glava2\ ProgrammBD_withPassword).