[ Pobierz całość w formacie PDF ]
.Lines.Add(GetNextLine);finallyActive:= False;end;end;TIBLogService, moduł IBServicesKlasa TIBLogService umożliwia dostęp do logu bazy danych z pliku interbase.log z serwera bazy danych.Komponent dziedziczy po TIBControlAndQueryService i nie wprowadza nowych właściwości, metod ani zdarzeń.Przykładwith IBLogSeryice1 do beginServerName:='localhost';LoginPrompt:= False;Params.Add('user_name=sysdba');Params.Add('password=masterkey');Active := True;ServiceStart;tryWhile not Eof doMemo1.Lines.Add(GetNextLine);finallyActive:= False;end;end;TIBSecurityService, moduł IBServicesKomponent umożliwia zarządzanie dostępem użytkowników do serwera InterBase, Należy pamiętać o tym, że przy standartowej instalacji i konfiguracji do większości tych funkcji należy korzystać z konta z uprawnieniami administratora (SYSDBA).O ile nie powiedziano inaczej, operacje przeprowadzane są na użytkowniku i iden­tyfikatorze zapisanym we właściwości UserName.WłaściwościFirstName - umożliwia wprowadzenie lub pobranie imienia użytkownika.GroupID - umożliwia ustalenie identyfikatora grupy, do której należy użytkownik.LastName - nazwisko użytkownika z bazy danych.MiddleName - drugie imię użytkownika.Password - właściwość umożliwiająca zmianę hasła użytkownika.SecurityAction - akcja, jaka ma zostać przeprowadzona na użytkowniku.Dostępne możliwości to:ActionAddUser - dodanie nowego użytkownika.ActionDeleteUser - usunięcie użytkownika.ActionDisplayUser - pobranie informacji o użytkowniku celem wyświetlenia.ActionModifyUser - zmiana informacji o użytkowniku.SQLRole - nazwa roli, za pomocą której następuje podłączenie do bazy bezpieczeń­stwa: isc4.gdb.UserID - umożliwia podanie numeru identyfikacyjnego użytkownika,UserInfo - zwraca informacje o użytkownikach w postaci tablicy rekordów TuserInfo.Liczbę elementów tablicy zwraca właściwość UserInfoCount.TUserlnfo = recordUserName: string;FirstName: string;MiddleName: string;LastName: string;GroupID: Integer;UserlD:Integer;end;Aby uzyskać listę użytkowników z bazy danych, można posłużyć się poniższym przykładem:with IBSecurityService1 do beginActive:=True;DisplayUsers;For I:=0 to UserInfoCount - l doMemo1.Lines.Add(UserInfo[I].UserName);end;UserInfoCount - liczba użytkowników bazy danych - liczba elementów tablicy UserInfo.UserName - nazwa użytkownika, na którym należy przeprowadzić operację.MetodyAddUser - dodaje użytkownika o parametrach podanych we właściwościach do bazy danych.DeleteUser - usuwa użytkownika UserName z bazy danych.DisplayUser - pobiera informacje o użytkowniku UserName i tworzy rekord TUser­lnfo w tablicy UserInfo.DisplayUsers - pobiera informacje o wszystkich użytkownikach z bazy danych i wstawia do tablicy UserInfo.ModifyUser - zmienia informacje o użytkowniku UserName.ZdarzeniaKomponent nie wprowadza nowych zdarzeń.PrzykładCzęsto nasuwa się pytanie - w jaki sposób umożliwić użytkownikowi zmianę hasła lub wpisanie na nowo np.nazwiska? Standardowo taką możliwość posiada jedynie administrator bazy danych SYSDBA.Aby odpowiedzieć na to pytanie, należy przyjrzeć się bazie isc4.gdb nazywanej też bazą bezpieczeństwa serwera.W tabeli o nazwie USERS znajduje się lista użyt­kowników InterBase: identyfikator, hasło (zaszyfrowane), imię, nazwisko itd.Możliwość modyfikacji tych tabel posiada jedynie administrator.Użytkownik, któ­ry chce dokonać zmian w swoich danych, musi otrzymać do tego prawa:GRANT UPDATE(FIRST_NAME, MIDDLE_NAME, LAST_NAME, PASSWD, UID, GID,GROUP_NAME)ON USERS TO PUBLIC:Od tego momentu użytkownik może zmieniać swoje hasło i podstawowe dane - nie jest to jednak najbezpieczniejsze rozwiązanie.Można usprawnić to rozwiązanie przez dodanie wyzwalacza przed aktualizacją.Jego zadaniem byłoby sprawdzenie, czy użytkownik modyfikuje swoje dane, czy też “dobiera się" do cudzych.Taki wyzwalacz proponuje np.Ivan Prenosil:CREATE EXCEPTION E_Security'Nie masz uprawnień do modyfikacji tego użytkownika.';SET TERM !!;CREATE TRIGGER TUser_Modify FOR USERS BEFORE UPDATEASBEGINIF (NOT (USER ='SYSDBA’ OR USER = OLD.USER_NAME))THEN EXCEPTION E_Security;END !!SET TERM; !!Poniżej pokazano, w jaki sposób dodać użytkownika do InterBase:with IBSecurityService1 do beginServerName:='localhost';LoginPrompt:=False;Params.Add('user_name=sysdba');Params.Add('password=masterkey');Active:=True;tryUserName:=Edit1.Text:FlrstName:= Edit2.Text;MiddleName:= Edit3.Text;LastName:=Ed1t4.Text;UserID:=StrToInt(Edit5.Text);GroupID:=StrToInt(Edit6.Text);Password:=Edit7.Text;AddUser;finallyActive:=False;end;end;end;TIBServerProperties, moduł IBServicesKomponent umożliwia odczytanie informacji o parametrach, konfiguracji, wersji i li­cencji serwera bazy danych.WłaściwościConfigParams - ta właściwość zwraca informacje o konfiguracji serwera.Wśród nich można znaleźć takie dane, jak lokalizacja pliku z blokadami, wiadomościami, poło­żeniem bazy danych użytkowników itp.Parametry konfiguracyjne zwracane są jako klasa o następujących polach:TConfigParams=classpublicConfigFileData: TConfigFileData; // Informacja o konfiguracji pliku danychConfigFileParams: array of string;BaseLocation: string; // Lokalizacja InterBase-aLockFileLocation: string; // Lokalizacja pliku z blokadamiMessageFileLocation: string; // Lokalizacja pliku z komunikatamiSecurityDatabaseLocation: string: // Lokalizacja bazy isc4.gdbend;TConfigFileData przechowuje informacje w postaci dwóch tablic2, w których (ConfigFi1eValue) zapamiętuje wartość klucza (ConfigFileKey).TConfigFileData=class;publicConfigFileValue: array of integer;ConfigFileKey: array of integer;end;DatabaseInfo - właściwość zwraca informacje o bazie danych w postaci klasy TdatabaseInfo o następujących polach:NoOfAttachments - liczba podłączeń.NoOfDatabases - liczba baz danych.DbName - tablica nazwy baz danych.LicenseInfo - zwraca informacje o licencji serwera - klucz, ID, liczbę licencjono­wanych użytkowników:TLicenseInfo=classKey: array of string;Id: array of string;Desc: array of string;LicensedUsers: Integer;endLicenseMaskInfo - właściwość umożliwia uzyskanie masek bitowych z informacją o licencji i właściwościach serwera (serwer lokalny, TCP/IP itp [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rozszczep.opx.pl
  •