![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele na której intensywnie wykonywane są INSERTY, SELECT raz na tydzień do generowania raportów.
Istnieje możliwość że dwaj użytkownicy będa chcieli wstawić w tym samym czasie wiersz do tabeli. Mam własną klase obsługi bazy, moje pytanie jest nastepujace czy wystarczy
Aby zabezpieczyc sie przed taka sytuacją na 100%? a tabela MyISAM Ten post edytował wijet 3.02.2006, 12:18:56 -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
hmm moze przejdz na InnoDB i zrob transakcje
![]() ![]() bardziej nalezy sie przejmowac UPDATE niz insert bo tutaj jest zagrozenie gdy dwie osoby edytuja ten sam rekord -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się że nie potrzebuje tych możliwości jakie daje InnoDB wystarczy do tego MyISAM.
Boje sie że jednocześnie wysłane zostanie INSERT od odwóch klientów. Chodzi mi oto czy jedno z tych zapytań wpadnie do kolejki, a nastepnie zostanie wykonane czy MySQL na chama bedzie próbował wykonać dwa(jakoś) ![]() a może warto użyć INSERT DELAYED i to załatwi sprawe ? -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Obydwa zostaną wykonane, nie musisz się tym przejmować. Przejmować się należy UPDATE'ami a nie INSERT'ami.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zakładam że użytkownik którym skrypt loguje się do bazy ma możliwość Tylko
i wyłącznie INSERTowania. A tak dla mojej wiedzy w przypadku UPDATEów wystarczy blokować tabele do zapisu a można zostawić odczyt? MyISAM -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
jezeli dwuch userow wstawia cos do tej samej tabeli (zakladam ze kozystasz z pola auto_increment) wiec ktorez z nich zawsze trafi jako pierwsze
![]() Cytat A tak dla mojej wiedzy w przypadku UPDATEów wystarczy blokować tabele do zapisu a można zostawić odczyt? skoro jedna osoba bedzie mogla (miala prawa) do zrobienia UPDATE to czemu inna nie ![]() ![]() ![]() ![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie chodzi mi o użytkownika portalu czy aplikacji php tylko o użytkownika bazy danych, który powinien miec maksymalnie waskie uprawnienia.
W wypadku błedu pozwalajacego na wstrzykniecie swojego kodu SQL np "DELETE from tabelka" nie wykona sie bo użytkownik bazy nie ma takich uprawnien, o takiego użytkownika mi chodziło. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No to od tego są uprawnienia użytkowników, a nie blokowanie tabel.
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie chodzi mi o użytkownika portalu czy aplikacji php tylko o użytkownika bazy danych, który powinien miec maksymalnie waskie uprawnienia.
W wypadku błedu pozwalajacego na wstrzykniecie swojego kodu SQL np "DELETE from tabelka" nie wykona sie bo użytkownik bazy nie ma takich uprawnien, o takiego użytkownika mi chodziło. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
...?
![]() Ten post edytował spenalzo 3.02.2006, 14:54:57 -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Cytat(wijet @ 2006-02-03 14:46:43) Nie chodzi mi o użytkownika portalu czy aplikacji php tylko o użytkownika bazy danych, który powinien miec maksymalnie waskie uprawnienia. W wypadku błedu pozwalajacego na wstrzykniecie swojego kodu SQL np "DELETE from tabelka" nie wykona sie bo użytkownik bazy nie ma takich uprawnien, o takiego użytkownika mi chodziło. Baza mysql, tabele user, db, tables_priv i pozostałe. Tam definiujesz uprawnienia dla użytkownika bazy danych. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 20:17 |