firebird veritabanı masterkey şifresinin programla değiştirilmesi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
firebird veritabanı masterkey şifresinin programla değiştirilmesi
arkadaşlar firebird veritabanı şifresini uygulama ile değiştirmem lazım bunu yapabilirmiyiz netde hiç bir bilği yok yanlışmı arıyorum
yardımcı olabilecek var mı saygılarımla
yardımcı olabilecek var mı saygılarımla
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Merhaba.
Kullandığınız delphi ve firebird sürümlerini belirtirseniz yardımcı olmaya çalışırım.
Kullandığınız delphi ve firebird sürümlerini belirtirseniz yardımcı olmaya çalışırım.
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
delphi7 firebird 2.1 çok sağolun hocam borçlanacağım size. saygılar
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Rica ederim.
Öncelikle forma bir adet IBSecurityService bileşeni ekleyin (Interbase Admin Sekmesinde). Sonra bir buton içerisine aşağıdaki kodları ekleyin;
Kodları deneme imkanım olmadı ama muhtemelen işinizi görecektir.
Kolay gelsin.
Öncelikle forma bir adet IBSecurityService bileşeni ekleyin (Interbase Admin Sekmesinde). Sonra bir buton içerisine aşağıdaki kodları ekleyin;
Kod: Tümünü seç
IBCSecurityService1.ClientLibrary := 'fbclient.dll';
IBCSecurityService1.Username := 'SYSDBA';
IBCSecurityService1.Password := 'masterkey';
IBCSecurityService1.LoginPrompt := False;
IBCSecurityService1.Attach;
IBCSecurityService1.UserInfo.UserName := 'username';
IBCSecurityService1.UserInfo.Password := 'new password';
IBCSecurityService1.ModifyUser;
IBCSecurityService1.Detach;
Kolay gelsin.
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Bu password işi firebird ün hala en saçma sayılacak kısmı. security.fdb içindeki bu kullanıcı ad ve şifreleri, ancak security.fdb olduğu serverda işe yarar. çünkü bunu sadece tcp connection larda kullanıyor. sizin db yi başka bir makinaya kopyalandığında, yada security.fdb nin orjinalini yada bildiğiniz birini kopyalarsa db ye gene bağlanırsınız.
Role koyulursada yanılmıyorsam kullanıcıyı security.fdb ye eklerseniz tekrar erişim sağlanır. (bunu hiç denemedim) o yüzdende db mi başkaları kurcalamasın diye şimdilik uğraşmayın.
Role koyulursada yanılmıyorsam kullanıcıyı security.fdb ye eklerseniz tekrar erişim sağlanır. (bunu hiç denemedim) o yüzdende db mi başkaları kurcalamasın diye şimdilik uğraşmayın.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
https://www.devmedia.com.br/criando-usu ... fb-ib/2005
linkdeki örneği kurcalayarak çözdüm zaman ayırıp cevap yazan hocalarıma saygılar sunarım
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,DBXpress, IBServices, ComCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
ListView1: TListView;
IBSecurityService1: TIBSecurityService;
Button1: TButton;
Button3: TButton;
Button4: TButton;
edtUN: TEdit;
edtPass: TEdit;
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Tipo: byte;
procedure CarregaUser;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses IB;
{$R *.dfm}
procedure IslemYap(user,sifre:string;Tipo:byte);
begin
with Form1.IBSecurityService1 do
begin
try
UserName := user;
Password := sifre;
Active := True;
case Tipo of
0: AddUser;
1: ModifyUser;
2: DeleteUser;
end;
ShowMessage('İşlem Yapıldı.');
except
on E: EIBInterbaseError do
raise Exception.Create(
'Hata');
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
UserName,Password:string;
begin
UserName := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,0)
end;
procedure TForm1.CarregaUser;
var
i: Integer;
aLista: TListItem;
begin
ListView1.Clear;
with IBSecurityService1 do
begin
DisplayUsers;
for i := 0 to UserInfoCount - 1 do { Iterate }
begin
with UserInfo do
begin
aLista := ListView1.Items.Add;
aLista.Caption := UserName;
aLista.SubItems.Add(FirstName + ' ' +
MiddleName + ' ' +
LastName);
end;
end;
Active := False;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
CarregaUser;
end;
procedure TForm1.ListView1Click(Sender: TObject);
begin
Edit1.Text:= ListView1.Selected.Caption;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
UserName,Password:string;
begin
Username := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
UserName,Password:string;
begin
Username := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,2);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
IBSecurityService1.UserName:=edtUN.Text;
IBSecurityService1.Password:=edtPass.Text;
IBSecurityService1.Active:=True;
CarregaUser;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
en
linkdeki örneği kurcalayarak çözdüm zaman ayırıp cevap yazan hocalarıma saygılar sunarım
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,DBXpress, IBServices, ComCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
ListView1: TListView;
IBSecurityService1: TIBSecurityService;
Button1: TButton;
Button3: TButton;
Button4: TButton;
edtUN: TEdit;
edtPass: TEdit;
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Tipo: byte;
procedure CarregaUser;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses IB;
{$R *.dfm}
procedure IslemYap(user,sifre:string;Tipo:byte);
begin
with Form1.IBSecurityService1 do
begin
try
UserName := user;
Password := sifre;
Active := True;
case Tipo of
0: AddUser;
1: ModifyUser;
2: DeleteUser;
end;
ShowMessage('İşlem Yapıldı.');
except
on E: EIBInterbaseError do
raise Exception.Create(
'Hata');
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
UserName,Password:string;
begin
UserName := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,0)
end;
procedure TForm1.CarregaUser;
var
i: Integer;
aLista: TListItem;
begin
ListView1.Clear;
with IBSecurityService1 do
begin
DisplayUsers;
for i := 0 to UserInfoCount - 1 do { Iterate }
begin
with UserInfo do
begin
aLista := ListView1.Items.Add;
aLista.Caption := UserName;
aLista.SubItems.Add(FirstName + ' ' +
MiddleName + ' ' +
LastName);
end;
end;
Active := False;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
CarregaUser;
end;
procedure TForm1.ListView1Click(Sender: TObject);
begin
Edit1.Text:= ListView1.Selected.Caption;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
UserName,Password:string;
begin
Username := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
UserName,Password:string;
begin
Username := Edit1.Text;
Password := Edit2.Text;
IslemYap(UserName,Password,2);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
IBSecurityService1.UserName:=edtUN.Text;
IBSecurityService1.Password:=edtPass.Text;
IBSecurityService1.Active:=True;
CarregaUser;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
en
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
malesef stabil çalışmıyor arkadaşlar başka bir pc de programı çalıştırıp masterkey olan şifreyi değiştirmeye çalıştığında
bağlanmıyor iş görmüyor
bağlanmıyor iş görmüyor
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Merhaba.
Gerekli açıklamayı freeman35 yukarıda yapmış. O yüzden şifre değiştirmekle uğraşmak yerine veri tabanını güvenliğini kullanıcının sorumluluğuna bırakmak bence daha makul bir davranış olacaktır. Ayrıca bu şifreyi değiştirmek istemenizin sebebi nedir? Kullanıcı yetkilendirme gibi bir yapı mı kurmaya çalışıyorsunuz yoksa tamamen merak mı?
Gerekli açıklamayı freeman35 yukarıda yapmış. O yüzden şifre değiştirmekle uğraşmak yerine veri tabanını güvenliğini kullanıcının sorumluluğuna bırakmak bence daha makul bir davranış olacaktır. Ayrıca bu şifreyi değiştirmek istemenizin sebebi nedir? Kullanıcı yetkilendirme gibi bir yapı mı kurmaya çalışıyorsunuz yoksa tamamen merak mı?
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
küçük bir ticari programım var eski sürümlerimden birini vatandaşın biri çaldı kullanıyor mahkemeydi davaydı patentdi lisanstı bana zor ve maliyetli geliyor lisanslama için benim bilmediğim kolay bir yöntem varsa önerinizi beklerim.
şimdi standart şifreyle programı verdiğimde meraklı birileri çıkıp kayıtları değiştirmeye çalışıyorlar ayrıca en azından şifreleri belirli seviye amatörlerden korumak istiyorum . inanki öyle şeylerle karşılaşıyorumki inanamazsın. amacım benden başkasının firebird veritabanından kayıtlarıma ulaşmasını enğellemek.
yukardaki programda kompenant üzerinden username ve şifre verdiğimde bağlanıyor kod ile yaptığımda bağlanmıyor enterasan çözemedim.
kodlar burda bir kontrol ederseniz sevinirim
https://drive.google.com/open?id=1U6jEb ... 04-BxgUM7K
şimdi standart şifreyle programı verdiğimde meraklı birileri çıkıp kayıtları değiştirmeye çalışıyorlar ayrıca en azından şifreleri belirli seviye amatörlerden korumak istiyorum . inanki öyle şeylerle karşılaşıyorumki inanamazsın. amacım benden başkasının firebird veritabanından kayıtlarıma ulaşmasını enğellemek.
yukardaki programda kompenant üzerinden username ve şifre verdiğimde bağlanıyor kod ile yaptığımda bağlanmıyor enterasan çözemedim.
kodlar burda bir kontrol ederseniz sevinirim
https://drive.google.com/open?id=1U6jEb ... 04-BxgUM7K
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Programı bu şekilde veri tabanı şifresini değiştirerek korumak pek sağlıklı değil. Lisanslama olayı tamamen farklı bir konu. Ben lisanslama için Harddiskin fabrika seri numarasını alıp bir dizi işleme tabi tuttuktan sonra lisans parametresini şifreleyip veri tabanına kaydediyorum. Onun haricinde de kayıt kısıtlaması getiriyorum. Örneğin 30 müşteri eklemesine izin veriyorum. Müşteri sayısı 30 olunca veri tabanından lisans anahtarı var mı yok mu kontrol ettiriyorum. Bu şekilde senaryolar üreterek programı koruma altına alıyorum.
Eğer firebird şifre değiştirmek istiyorsanız bu kadar kodla uğraşmak yerine firebird in kendi servisi olan GESC i kullanarak manuel olarak şifreyi değiştirebilirsiniz.
Eğer firebird şifre değiştirmek istiyorsanız bu kadar kodla uğraşmak yerine firebird in kendi servisi olan GESC i kullanarak manuel olarak şifreyi değiştirebilirsiniz.
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
bende benzer şekilde yapıyorum ama oyun programı diyelimki 50 kişi oyun oynadı veritabanına bağlanıp 10 adedini silip 40 oyun oynanmış ğibi gösterebilir veritabanına ulaşılmasını enğellemem lazım. GESC istemiyorum müşterinin önünde girmem gerekebiliyor.
resimdeki gibi kompenant üzerinden yaptığımda çalışıyor ama kodla bağlanmaya çalıştığımda bağlanamıyorum
resimdeki gibi kompenant üzerinden yaptığımda çalışıyor ama kodla bağlanmaya çalıştığımda bağlanamıyorum
Kod: Tümünü seç
procedure TForm1.Button4Click(Sender: TObject);
begin
with IBSecurityService1 do
begin
UserName:=edtUN.Text;
Password:=edtPass.Text;
//LoginPrompt:=True;
Active:=True;
end;
CarregaUser;
end;
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Kod: Tümünü seç
procedure TForm1.Button4Click(Sender: TObject);
begin
with IBSecurityService1 do
begin
Params.Clear;
Protocol:=Local;
Params.Add('user_name=SYSDBA');
Params.Add('password=masterkey');
LoginPrompt:=FAlse;
SecurityAction:=ActionDisplayUser;
Active:=True;
end;
CarregaUser;
end;
-
- Üye
- Mesajlar: 83
- Kayıt: 28 Ara 2017 04:14
- İletişim:
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
tamamdır hocam çalıştı. allah razı olsun emeğinize elinize sağlık
saygılar sunarım.
saygılar sunarım.
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: firebird veritabanı masterkey şifresinin programla değiştirilmesi
Rica ederim. Allah cümlemizden razı olsun. İyi çalışmalar.