Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Пароли на базу данных Access

Delphi , Базы данных , Access



Автор: Savva
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Установка/Изменение/Удаление пароля на базу данных Access

Функция для удаления, задания и изменения пароля базы данных Access используя DAO Engine.

PS. кто будет использовать - в комментариях отметьте версии ОС, Access,Delphi.

Зависимости: Dialogs,DAO2000,ComObj
Автор:       savva, savva@nm.ru, ICQ:126578975, Орел
Copyright:   Сапронов Алексей (Savva)
Дата:        13 сентября 2002 г.
***************************************************** }

//определяем тип, указывающий действие над паролем
type
  TPasswordAction = (paSet, paChange, paRemove);

  ....

function ChangeAccessDBPassword(DatabaseName: string; action: TPasswordAction;
  OldPassword: string = ''; NewPassword: string = ''): boolean;
var
  DAO: _DBEngine;
  db: Database;
  ClassID: TGUID;
  V35, V36: string;
  oldPass, newPass: string;
begin
  Result := false;
  V35 := 'DAO.DBEngine.35';
  V36 := 'DAO.DBEngine.36';
  try
    try
      ClassID := ProgIDToClassID(v36);
    except
      try
        ClassID := ProgIDToClassID(v35);
      except
        raise;
      end;
    end;
    DAO := CreateComObject(ClassID) as _DBEngine;
    if action = paSet then
    begin
      db := DAO.OpenDatabase(DatabaseName, true, false, '');
      db.NewPassword(#0, NewPassword);
    end
    else
    begin
      db := DAO.OpenDatabase(DatabaseName, true, false, ';pwd=' + OldPassword);
      if action = paChange then
        db.NewPassword(OldPassword, NewPassword)
      else
        db.NewPassword(OldPassword, #0);
    end;
    Result := true;
  except
    // выводим сообщение о ошибке
    on E: Exception do
    begin
      Result := false;
      ShowMessage(e.message);
    end;
  end;
end.

Пример использования:

//устанавливаем новый пароль - БАЗА ДОЛЖНА БЫТЬ НЕ ЗАПАРОЛЕНА,
// иначе будет ошибка:)

procedure TForm1.Button1Click(Sender: TObject);
var
  newPass: string;
begin
  if InputQuery('New password', 'Enter new password', newPass) then
    if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb', paSet,
      '', newPass) then
      ShowMessage('OK!')
    else
      ShowMessage('Error!');
end;

//изменяем пароль

procedure TForm1.Button2Click(Sender: TObject);
var
  oldPass, newPass: string;
begin
  if InputQuery('Old password', 'Enter old password', oldPass) then
    if InputQuery('New password', 'Enter new password', newPass) then
      if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb',
        paChange, oldPass, newPass) then
        ShowMessage('OK!')
      else
        ShowMessage('Error!');
end;

//удаляем пароль

procedure TForm1.Button3Click(Sender: TObject);
var
  oldPass: string;
begin
  if InputQuery('Password', 'Enter password', oldPass) then
    if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb',
      paRemove, oldPass, '') then
      ShowMessage('OK!')
    else
      ShowMessage('Error!');
end;

Привет! Я переведу текст на русский язык:

Объявление типа Первая секция объявляет тип TPasswordAction с тремя возможными значениями: paSet, paChange и paRemove. Эти значения соответствуют установке, изменению и удалению паролей соответственно.

Функция ChangeAccessDBPassword Эта функция принимает четыре параметра:

  • DatabaseName: имя файла базы данных Access
  • action: значение типа TPasswordAction, указывающее желаемое действие (установка, изменение или удаление)
  • OldPassword: текущий пароль (необязательно для установки нового пароля)
  • NewPassword: новый пароль для установки (необязательно)

Функция использует DAO-инжиниринг для открытия указанного файла базы данных и выполнения запрошенного действия. Она возвращает булевое значение, указывающее, была ли операция успешной.

Организация кода Код разделен на три основные секции:

  1. Инициализация и обработка ошибок
  2. Установка, изменение или удаление паролей
  3. Пример использования (три процедуры: Button1Click, Button2Click и Button3Click)

Пример использования Эти три процедуры демонстрируют, как использовать функцию ChangeAccessDBPassword в приложении Delphi:

  • Button1Click: устанавливает новый пароль для файла базы данных
  • Button2Click: изменяет существующий пароль
  • Button3Click: удаляет существующий пароль

В целом, этот код предоставляет удобный способ управления паролями на базах данных Access с помощью DAO-инжиниринга изнутри приложения Delphi.

Предложения

  • Рассмотрите добавление дополнительных механизмов обработки ошибок и журналирования для улучшения надежности кода.
  • Вам может потребоваться добавить дополнительные меры безопасности, такие как валидация ввода пользователя и проверка формата паролей.
  • Если вы планируете использовать этот код в производственной среде, рассмотрите его рефакторинг для улучшения модульности и повторного использования.

Рассмотрен способ установки, изменения и удаления пароля для базы данных Microsoft Access с помощью функции DAO Engine.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Access ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:02:04/0.0037391185760498/0