🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.freebsd
3 messages
3 total messages Started by spaj44 Mon, 17 May 2004 06:45
Mysql + Quota
#57807
Author: spaj44
Date: Mon, 17 May 2004 06:45
36 lines
2941 bytes
Witam
musze poruszyć temat poraz kolejny ponieważ dalej nie ma 
na to odpowedzi a ten temat wciąż mnie nurtuje nieubłaganie a jest tak
.
Na necie możemy znalesć dwa skrypty które niby potrafią nałożyć quote
na daną baze danych ale oczywiście zaden z nich narazie tego nie
potrafie postaram sie w skrócie opisać kazdy z nich
1.skrypt można pobrać z http://projects.marsching.org/mysql_quota/ 
skrypćik po przeglądnieciu kodu zapowiada sie ciekawie ale jest lipny
nie udało mi sie go uruchomić ponieważ wywala mi błąd w linijce
while ($row = mysql_fetch_array($result)) 
jeżeli to skasujem to wyskoczy nam w innej linijce jeżeli poczynimy to
samo co wcześniej to skrypty odpali sie ale bedzie tylko czrny ekran i
nic więcej nie wiem co jest i nie rozumie dlaczego ktoś wysttawia
trefny skrypt ?? .
2. http://paradigma.co.pt/~gngs/stuff/mysqlquota.php.txt 
ten skrypt jest ciekawy ale służący jako info i postrach dla userów . 
jego kod żródłowy nie jest obicujący ale działający ponieważ sie
uruchamia bez problemu i oczywiście po uruchomieniu wyskakuje ładne
menu gdzie możemy wpisać baze na którą bedzie nałożona quota i ustalć
ja również i podać jeszcze kilka informacji . Po przekroczeniu limitu
ustalonego w skrypcie następuje wysłanie informacji do usera że
przekroczył limit bazy SQL i musi coiś usnąć ale ten skrypt to zwykła
atrapa tak czy siak dalej możesz zapisywać rekordy w bazie czyli
krótko mówiąc lipa .
ja poszukuje a również kieruje zapytanie do lepszych w te klocki żeby
ten skrypt z deka zmodyfikowac czyli żeby wysyłał maila do usera i
również zmienialo prawa dostępu do bazy tak żeby miał opcjie DROPE i
DELETE żeby mógł tylko kasować . Ale wydaje mi sie żeby to działało to
ten skrypt musi pracować jako demon a to już by było bardziej
skonplikowane ale coż czekam cierpliwie moze jakiś tęgi umysł rozwikła
ten pomysł wiem że to możliwe po googlowałem i pisałem maile do
adminów i nikt niby nie znał odpowiedzi tylko0 że na ich stronach
dziwnym trafem było nałożona quota na baze któż to wiem może tylko to
taka zamyłka ?? .
Pozdrawiam
Re: Mysql + Quota
#57809
Author: Piotr Koper
Date: Mon, 17 May 2004 21:29
66 lines
4018 bytes
spaj44@wp.pl (spaj44) wrote in message news:<d97d30b7.0405162245.57f6120f@posting.google.com>...
> Witam
> musze poruszy? temat poraz kolejny poniewa? dalej nie ma 
> na to odpowedzi a ten temat wci?? mnie nurtuje nieub?aganie a jest tak
> .
> Na necie mo?emy znales? dwa skrypty które niby potrafi? na?o?y? quote
> na dan? baze danych ale oczywi?cie zaden z nich narazie tego nie
> potrafie postaram sie w skrócie opisa? kazdy z nich
> 1.skrypt mo?na pobra? z http://projects.marsching.org/mysql_quota/ 
> skryp?ik po przegl?dnieciu kodu zapowiada sie ciekawie ale jest lipny
> nie uda?o mi sie go uruchomi? poniewa? wywala mi b??d w linijce
> while ($row = mysql_fetch_array($result)) 
> je?eli to skasujem to wyskoczy nam w innej linijce je?eli poczynimy to
> samo co wcze?niej to skrypty odpali sie ale bedzie tylko czrny ekran i
> nic wi?cej nie wiem co jest i nie rozumie dlaczego kto? wysttawia
> trefny skrypt ?? .

``typo'', zauwaz roznice w zapytaniu, ktore tworzy tabele, a nazwach
uzywanych dalej w samym skrypcie (mowie o Limit zamiast limit, Quota
zamiast quota itd).

> 2. http://paradigma.co.pt/~gngs/stuff/mysqlquota.php.txt 
> ten skrypt jest ciekawy ale s?u??cy jako info i postrach dla userów . 
> jego kod ?ród?owy nie jest obicuj?cy ale dzia?aj?cy poniewa? sie
> uruchamia bez problemu i oczywi?cie po uruchomieniu wyskakuje ?adne
> menu gdzie mo?emy wpisa? baze na któr? bedzie na?o?ona quota i ustal?
> ja równie? i poda? jeszcze kilka informacji . Po przekroczeniu limitu
> ustalonego w skrypcie nast?puje wys?anie informacji do usera ?e
> przekroczy? limit bazy SQL i musi coi? usn?? ale ten skrypt to zwyk?a
> atrapa tak czy siak dalej mo?esz zapisywa? rekordy w bazie czyli
> krótko mówi?c lipa .
> ja poszukuje a równie? kieruje zapytanie do lepszych w te klocki ?eby
> ten skrypt z deka zmodyfikowac czyli ?eby wysy?a? maila do usera i
> równie? zmienialo prawa dost?pu do bazy tak ?eby mia? opcjie DROPE i
> DELETE ?eby móg? tylko kasowa? . Ale wydaje mi sie ?eby to dzia?a?o to
> ten skrypt musi pracowa? jako demon a to ju? by by?o bardziej
> skonplikowane ale co? czekam cierpliwie moze jaki? t?gi umys? rozwik?a
> ten pomys? wiem ?e to mo?liwe po googlowa?em i pisa?em maile do
> adminów i nikt niby nie zna? odpowiedzi tylko0 ?e na ich stronach
> dziwnym trafem by?o na?o?ona quota na baze któ? to wiem mo?e tylko to
> taka zamy?ka ?? .
> Pozdrawiam


oba skrypty zapewne sa dobrze napisane poza pozniej dopisanymi
komentarzami.
jedyne niedopracowanie to brak: FLUSH PRIVILEGES
jakies odnosniki na ten temat:
http://dev.mysql.com/doc/mysql/en/GRANT.html
http://dev.mysql.com/doc/mysql/en/FLUSH.html

skrypty sa bardzo fajne i dzialaja po naprawde niewielkich
modyfikacjach, poprawiona przeze mnie wersja znajduje sie tu:

http://koper.exel.pl/mysql_quota/quota.phps

Dziala bardzo dobrze jezeli chodzi o uprawnienia na uzytkownika i
tylko wtedy.
Warty wspomnienia jest fakt, ze jezeli uzytkownik tabeli wczesniej
mial uprawnienia tylko ``do odczytu'', to po przekroczeniu quoty i jej
ponownym unormowaniu bedzie mogl takze zapisywac do bazy danych.

Milej zabawy.

pozdr.
koper
Re: Mysql + Quota
#57810
Author: lukes
Date: Wed, 19 May 2004 20:05
34 lines
2815 bytes
Użytkownik "spaj44" <spaj44@wp.pl> napisał w wiadomości
news:d97d30b7.0405162245.57f6120f@posting.google.com...
> Witam
> musze poruszyć temat poraz kolejny ponieważ dalej nie ma
> na to odpowedzi a ten temat wciąż mnie nurtuje nieubłaganie a jest tak
> .

Nie odpowiem dokladnie na pytanie aczkolwiek moze moje przemyslenia na cos
sie przydadza. Generalnie przerabialem temat skryptow o ktorych mowa ale
skrypty sprawdzające pojemnosc bazy to nie jest dobre rozwiazanie.
Uzyszkodnik moze pomiedzy sprawdzeniami wpruc do bazy sporo informacji, co z
tego, ze zablokujesz mu dostep jak dane pozostana. Chyba, ze chcesz stosowac
metody faszystowskie i usuniesz uzyszkodnikowi dane.
Mozna wykorzystac fakt, ze mysql tworzy osobny katalog do kazdej bazy
danych. Wtedy katalog przenosisz do katalogu uzytkownika i robisz symlinka
bazie. Oczywiscie nadajesz calemu katalogowi wlasciciela mysql i grupe
uzytkownika (lub  odwrotnie), ustawiasz quote systemowa i... no wlasnie -
ciekawi mnie co sie stanie w przypadku gdy zostanie osiagniety twardy limit.
Z informacji jakie zdobylem mysql moze sie glupio zachowac.
Inaczej jest w przypadku PgSQL-a, choc metoda jest prawie identyczna.
Warunek: PgSQL musi byc skompilowany z opcja
CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS . Robisz po prostu:
initlocation /home/uzyszkodnik1/data
createdb -D /home/uzyszkodnik1/data/test1 test1
Oczywiscie wlascicielem katalogu (...)/data musi byc pgsql a grupa
uzyszkodnik. Dla kazdego usera masz osobna grupe i tylko ustawiasz sobie
quote systemowa. Roznica, na korzysc PgSQL, polega na tym, ze w momencie
osiagniecia twardego limitu baza przestanie "dodawac" nowe dane, gdy zrobi
sie wolne miejsce (np. po vacuum) log transakcji zostanie oprozniony i
zmiany dokonane w bazie, wiec niczego nie powinno sie utracic.

pozdrawiam,
lukes
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads