Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zablokowanie dodawania nowych wierszy do bazy danych
axkrauze
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.02.2015

Ostrzeżenie: (0%)
-----


Witam,

Na wstępie zaznaczam, że mam bardzo małe pojęcie o bazach danych, więc przepraszam jeśli umieściłem coś nie w tym miejscu.

Mam następujący problem. Chciałbym zablokować możliwość dodawania nowych wierszy do bazy danych. Sytuacja wygląda następująco - mam stronę, na której można dodawać komentarze, a skrypt komentarzy jest autorskim skryptem opartym o bazę danych. Ostatnio strona non stop jest spamowana przez te komentarze i chciałbym zablokować możliwość ich dodawania. W samym skrypcie kompletnie się nie orientuję i stąd moje pytanie - czy da się to zrobić z poziomu samej bazy danych poprzez zablokowanie możliwość dodawania nowych wierszy (lub np. wprowadzenie automatycznego usuwania wierszy o jakimś ID)?

Z góry dziękuję za wszelkie porady, pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Jeśli idzie o bazę danych to najszybszym rozwiązaniem na pewno będzie:

  1. REVOKE INSERT ON tabela FROM user@host


Jednak spowoduje to, że skrypt prawdopodobnie będzie sypał błędem przy wykonaniu inserta (choć niekoniecznie, być może autor obsłużył wyjątek).

A jeśli idzie o skrypt to zalecałbym wprowadzenie captchy.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
axkrauze
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.02.2015

Ostrzeżenie: (0%)
-----


Coś mi chyba nie działa, bo MySQL zwraca błąd.

Nie wiem czy dobrze rozumiem, ale wpisuję coś takiego:

  1. REVOKE INSERT ON `nazwa tabeli z komentarzami` FROM `nazwa_superużytkownika@adres_serwera`
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


FROM localhost
Go to the top of the page
+Quote Post
axkrauze
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.02.2015

Ostrzeżenie: (0%)
-----


Niestety nadal mi coś nie działa, MySQL zwraca komunikat #1142 - GRANT command denied to user 'tu_nazwa_superużytkownika'@'tu_ip' for table 'koment'

Raczej popełniam jakiś beznadziejnie podstawowy błąd, tylko nie wiem jaki...
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(axkrauze @ 5.02.2015, 10:43:18 ) *
Niestety nadal mi coś nie działa, MySQL zwraca komunikat #1142 - GRANT command denied to user 'tu_nazwa_superużytkownika'@'tu_ip' for table 'koment'

Raczej popełniam jakiś beznadziejnie podstawowy błąd, tylko nie wiem jaki...


Nie popełniasz błędu, Twój su nie ma odpowiednich uprawnień do wykonania tej komendy.

Więc na bazie tego nie zrobisz, kombinuj ze skryptem.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #7





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Dodaj jakąś kolumnę NOT NUL z DEFAULTEM. Zapisz, a potem tego DEFAULTA wywal
Go to the top of the page
+Quote Post
axkrauze
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.02.2015

Ostrzeżenie: (0%)
-----


Cytat(mmmmmmm @ 5.02.2015, 12:14:35 ) *
Dodaj jakąś kolumnę NOT NUL z DEFAULTEM. Zapisz, a potem tego DEFAULTA wywal



Mógłbyś podać dokładnie jaką, bo jak pisałem z SQL nie miałem nigdy do czynienia i nie wiem jak wykorzystać taki sposób...
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #9





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Dodanie nowej kolumny (pole_xx) z defaultem:
  1. ALTER TABLE `tabela` ADD `pole_xx` INT NOT NULL DEFAULT '0'

Wszystkie istniejace rekordy beda miay zapisane tam 0.
Zmiana kolumny na NOT NULL bez DEFAUTA:
  1. ALTER TABLE `tabela` CHANGE `pole_xx` `pole_xx` INT( 11 ) NOT NULL

I już nic nie dodasz istniejącym kodem, bo się wywali, że pole nie może być NULL smile.gif
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@mmmmmmm:
Na pewno? MySQL przypadkiem nie przepuszcza takich wartości wstawiając (dla liczb) 0? Jedyne co to wyświetla ostrzeżenie typu:
Cytat
1 row(s) affected, 1 warning(s): 1364 Field 'test' doesn't have a default value

ale rekord zapisuje się do bazy, a w kolumnie test jest wstawiane 0.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:36