Методы и средства защиты информации в базе данных
Управление доступом – эффективный метод защиты информации, регулирующий использование ресурсов информационной системы, для которой разрабатывалась концепция информационной безопасности.
Методы и системы защиты информации в базе данных, опирающиеся на управление доступом, включают в себя следующие функции защиты информации:
· Идентификация пользователей, ресурсов и персонала системы информационной безопасности сети;
· Опознание и установление подлинности пользователя по вводимым учетным данным (на данном принципе работает большинство моделей информационной безопасности);
· Допуск к определенным условиям работы согласно регламенту, предписанному каждому отдельному пользователю, что определяется средствами защиты информации и является основой информационной безопасности большинства типовых моделей информационных систем;
· Протоколирование обращений пользователей к ресурсам, информационная безопасность (рф) которых защищает ресурсы от несанкционированного доступа и отслеживает некорректное поведение пользователей системы;
Рисунок 3. Пароль программы
Для того чтобы защитить базу данных от несанкционированного доступа и разграничить доступ к программе был придуман пароль:
vara,b:string;
begin
a:='admin';
if Edit1.text=a then
begin
form2.Show;
Edit1.Clear;
Form1.Visible:=False; end
else
begin
MessageDlg('Неверныйпароль!',mtError, [mbOK],0);
Exit;
b:='user';
if Edit1.text=b
then
begin
form9.Show;
Edit1.Clear;
Form1.Visible:=False; end
else
begin
MessageDlg('Неверныйпароль!',mtError, [mbOK],0);
Exit; end; end; end.
Приложение
Схема физической организации локальной сети предприятия
Рисунок 4. Схема физической организации локальной сети предприятия
Модель сущность-связь базы данных
Рисунок 5. Модель сущность-связь базы данных
Загрузочная(Главная) форма
Рисунок 6. Загрузочная форма
6.4. Экранные формы для ввода данных (документов)
Рисунок 7. Экранные формы для ввода данных
Рисунок 8. Экранные формы для ввода данных
Рисунок 9. Экранные формы для ввода данных
Формы выходной документации
Рисунок 10. Экранные формы выходной документации
Список литературы
1. Фуфаев Э.В., Фуфаев Д.Э. Базы данных.- Академия, 2015.- 320с.
2. Бураков М.В., Латыпова Р.Р.Базы данных и язык SQL.- СПБ.:ГУАП, 2014.- 120 с.
3. Баженова И.Ю. SQL и процедурно-ориентированные языки (2-е изд.).- М.: НОУ "Интуит",2016.- 166 с.
4. Кара-Ушанов В.Ю.SQL — язык реляционных баз данных.- Екатеринбург: Изд-во Урал.ун-та, 2016.- 156с.
5. Швецов В.И.Базы данных (2-е изд.).- М.: НОУ "Интуит", 2016 .- 218 с.
Интернет- ресурсы:
1. Кириллов В.В. Основы проектирования реляционных баз данных[Электронный ресурс]- Электрон. текстовые дан.-СПб.: Санкт-Петербургский Государственный институтточной механики и оптики (технический университет) изд., 2013. – Режим доступа: http://citforum.ru/database/dbguide/index.shtml
1. Сайт заводаhttp://www.plava.ru/
2. Модель сущность-связьhttp://www.mstu.edu.ru/study/materials/zelenkov/ch_2_4.html
Листинг программных модулей
Form 1:
unitUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids,WinProcs, StdCtrls, Buttons, Menus, ExtCtrls, jpeg,
ComCtrls,ComObj;
type
TMyGrid=class(TCustomGrid);
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
StringGrid4: TStringGrid;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N4: TMenuItem;
N5: TMenuItem;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
DateTimePicker1: TDateTimePicker;
ComboBox3: TComboBox;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure DateTimePicker1Exit(Sender: TObject);
procedureFormCreate(Sender: TObject);
procedure StringGrid4SelectCell(Sender: TObject; ACol, ARow: Integer;
varCanSelect: Boolean);
procedure StringGrid4Exit(Sender: TObject);
procedure ComboBox3Exit(Sender: TObject);
procedure ComboBox2Exit(Sender: TObject);
private
{ Private declarations }
public
procedureDelr(SG: TStringGrid; l:integer);
procedureSclear(sg: TStringGrid);
proceduredob(StringGrid: TStringGrid);
procedure Load(StringGrid: TStringGrid);
procedure Save(StringGrid: TStringGrid; N:string);
{ Public declarations }
end;
var
Form1: TForm1;
Excel:variant;
implementation
{$R *.dfm}
procedure TForm1.Sclear(sg: TStringGrid);
var
i:integer;
begin
for i:=1 to sg.rowcount-1 do
sg.Rows[i].Clear;
sg.RowCount:=2;
end;
procedure TForm1.dob(StringGrid: TStringGrid);
begin
StringGrid.RowCount:=StringGrid.RowCount+1;
end;
procedure TForm1.Load(StringGrid: TStringGrid);
var
f: TextFile;
i, k,x, y: Integer;
iTmp,strTemp,s: String;
ExcelApp, ExcelSheet: OLEVariant;
MyMass: Variant;
begin
if OpenDialog1.Execute then
begin //{ 0
if (ExtractFileExt(OpenDialog1.FileName)='.txt') or
(ExtractFileExt(OpenDialog1.FileName)='.doc') then
begin //{ 1
s:=OpenDialog1.FileName;
AssignFile(f, s);
Reset(f);
withStringGrid do
begin //{ 2
Readln(f, iTmp);
ifTryStrtoInt(iTmp,i) then
begin //{3
ColCount :=StrToInt(iTmp);
Readln(f, iTmp);
ifTryStrtoInt(iTmp,i) then
begin //{4
RowCount :=StrToInt(iTmp);
fori := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin //{5
Readln(f, strTemp);
Cells[i, k] := strTemp;
end; end;
CloseFile(f);
end; end; end
else
begin
ExcelApp :=CreateOleObject('Excel.Application');
ExcelApp.Workbooks.Open(OpenDialog1.FileName);
ExcelSheet :=ExcelApp.Workbooks[1].WorkSheets[1];
ExcelSheet.Cells.SpecialCells($0000000B).Activate;
x := ExcelApp.ActiveCell.Row;
y := ExcelApp.ActiveCell.Column;
MyMass :=ExcelApp.Range['A1', ExcelApp.Cells.Item[X, Y]].Value;
ExcelApp.Quit;
ExcelApp := Unassigned;
ExcelSheet := Unassigned;
StringGrid.RowCount := x;
StringGrid.ColCount := y;
for x := 1 to StringGrid.ColCount do
for y := 1 to StringGrid.RowCount do
StringGrid.Cells[x-1, y-1] := MyMass[y, x];
end; end; end;
procedure TForm1.Save(StringGrid: TStringGrid; N:string);
var
f:TextFile;
i, k,j:Integer;
s:string;
Sheet:variant;
begin //0
if SaveDialog1.Execute then
begin //1
if (SaveDialog1.FilterIndex = 1) or (SaveDialog1.FilterIndex = 2) then
begin //2
if SaveDialog1.FilterIndex = 1 then
s:=SaveDialog1.FileName+'.txt';
if SaveDialog1.FilterIndex = 2 then
s:=SaveDialog1.FileName+'.doc';
AssignFile(f, s);
Rewrite(f);
withStringGrid do
begin //4
Writeln(f, ColCount);
Writeln(f, RowCount);
fori := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end; //4
CloseFile(F);
end; //2
if SaveDialog1.FilterIndex = 3 then
begin //3
s:=SaveDialog1.FileName;
Excel:=CreateOleObject('Excel.Application');
Excel.Visible := False;
Excel.Application.WorkBooks.Add;
Sheet :=Excel.Workbooks[1].WorkSheets[1];
Sheet.name:=N;
Excel.ActiveSheet.Cells[1,2]:=N;
fori := 1 to StringGrid.RowCount do
for j:= 1 to StringGrid.ColCount do
Excel.ActiveSheet.Cells[i+1,j]:=StringGrid.Cells[j-1,i-1];
Excel.ActiveWorkbook.SaveAs(s);
Excel.Quit;
Excel := Unassigned;
Sheet := Unassigned;
end; //3
end; //1
end; //0
procedure TForm1.Delr(SG: TStringGrid; l:integer);
begin
sg.Rows[l].Clear;
TMyGrid(SG).DeleteRow(l);
end;
procedure TForm1.N2Click(Sender: TObject);
var s:string;
begin
s:=form1.PageControl1.ActivePage.Caption;
case PageControl1.ActivePageIndex of
0: Save(StringGrid1,s);
1: Save(StringGrid2,s);
2: Save(StringGrid3,s);
3: Save(StringGrid4,s);
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0:beginDelr(StringGrid1, 0); Load(StringGrid1); end;
1:beginDelr(StringGrid2, 0); Load(StringGrid2); end;
2:beginDelr(StringGrid3, 0); Load(StringGrid3); end;
3:beginDelr(StringGrid4, 0); Load(StringGrid4); end;
end;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0: dob(StringGrid1);
1: dob(StringGrid2);
2: dob(StringGrid3);
3: dob(StringGrid4);
end;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0: Delr(StringGrid1,StringGrid1.Row);
1: Delr(StringGrid2,StringGrid2.Row);
2: Delr(StringGrid3,StringGrid3.Row);
3: Delr(StringGrid4,StringGrid4.Row);
end;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
var i:integer;
begin
case PageControl1.ActivePageIndex of
2: begin end;
3: begin
Combobox2.Text:='';
Combobox2.Items.Clear;
for i:=1 to Form1.stringgrid3.RowCount-1 do
Combobox2.Items.Add(Form1.stringgrid3.Cells[0,i]);
end;
end;
end;
procedure TForm1.DateTimePicker1Exit(Sender: TObject);
begin
with StringGrid4 do
Cells[Col, Row] := DateTimeToStr(DateTimePicker1.DateTime);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DateTimePicker1.Parent := StringGrid4;
form1.ComboBox1.Parent:=StringGrid3;
form1.ComboBox2.Parent:=StringGrid4;
form1.ComboBox3.Parent:=StringGrid4;
stringgrid1.Cells[0,0]:='Êîä';
stringgrid1.Cells[1,0]:='Âèäîáó÷åíèÿ';
stringgrid2.Cells[0,0]:='Êîä';
stringgrid2.Cells[1,0]:='Ïðîôåññèÿ, âèäûðàáîò';
stringgrid3.Cells[0,0]:='Êîä';
stringgrid3.Cells[1,0]:='ÔÈÎ';
stringgrid3.Cells[2,0]:='Àäðåñ';
stringgrid3.Cells[3,0]:='Òåëåôîí';
stringgrid3.Cells[4,0]:='Ïðîôåññèÿ, âèäûðàáîò';
stringgrid4.Cells[0,0]:='ÊîäÑîòðóäíèêà';
stringgrid4.Cells[1,0]:='ÔÈÎ Ñîòðóäíèêà';
stringgrid4.Cells[2,0]:='Àòòåñòàöèÿ';
stringgrid4.Cells[3,0]:='Äàòààòòåñòàöèè';
end;
procedure TForm1.StringGrid4SelectCell(Sender: TObject; ACol,
ARow: Integer; varCanSelect: Boolean);
begin
ifacol=2 then
begin
DateTimePicker1.Visible := True;
DateTimePicker1.BoundsRect := StringGrid4.CellRect(ACol, ARow);
DateTimePicker1.SetFocus;
end;
ifacol=0 then
begin
ComboBox2.Visible := True;
ComboBox2.BoundsRect := StringGrid4.CellRect(ACol, ARow);
ComboBox2.Height:=1000;
ComboBox2.SetFocus;
end;
ifacol=1 then
begin
ComboBox3.Visible := True;
ComboBox3.BoundsRect := StringGrid4.CellRect(ACol,ARow);
ComboBox3.Height:=1000;
ComboBox3.SetFocus;
end;
end;
procedure TForm1.StringGrid4Exit(Sender: TObject);
begin
DateTimePicker1.Visible := false;
ComboBox2.Visible:=false;
ComboBox3.Visible:=false;
end;
procedure TForm1.ComboBox3Exit(Sender: TObject);
begin
with StringGrid4 do
Cells[Col, Row] := form1.ComboBox3.Text;
end;
procedure TForm1.ComboBox2Exit(Sender: TObject);
begin
with StringGrid4 do
Cells[Col, Row] := form1.ComboBox2.Text;
end;
end.