Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [mysql] Po co konta uzytkownikow ?
kkuubbaa88
post 1.09.2007, 11:29:33
Post #1





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


chcialbym sie dowiedziec po co dokladnie robic jakies dodatkowe konta w mysql z roznymi dostepami jesli tylko jedna osoba jest adminem i prowadzi strone ? jaki jest cel w tych dodatkowych kontach ?

dzieki za info smile.gif
pozdro smile.gif
Go to the top of the page
+Quote Post
Cysiaczek
post 1.09.2007, 12:21:59
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Skoro zawsze tylko jedna osoba sie zajmuje serwisem, to oczywiscie nie ma to sensu.
Ma to sens w wypadku, gdy nie wiesz, czy w przyszłości nie będzie potrzebne rozdzielenie niektórych funkcji - wtedy warto przygotować infrastrukturę tak, żeby łatwo można dodac nowych użytkowników.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
kkuubbaa88
post 1.09.2007, 14:22:21
Post #3





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


rozumie, ze chodzi tutaj o takich ludzi jak moderatorzy czy jakis pomocny administratorr ? a skad wtedy mam wiedziec ktore rzeczy mam im udostepnic ? jak to zrobic w mysql ? gdzie to jest ? do czego powinni miec dostep ?
Go to the top of the page
+Quote Post
Hazel
post 1.09.2007, 15:37:40
Post #4





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Możesz stworzyć w tabeli użytkowników dodatkowe pole typu ENUM i tam będzie napisane, kto jest kim...
Każdemu użytkownikowi można przypisać jakąs wartość - przykładowo 0 oznacza zwykłego użytkownika, 1 moderatora, a 2 administratora - i w zależności od tego pola wyświetlasz różną zawartość smile.gif

Cytat
gdzie to jest?
Tego "nie ma" w MySQL, są jedynie narzędzia do tego dry.gif

Ten post edytował Hazel 1.09.2007, 15:37:52


--------------------
Go to the top of the page
+Quote Post
kurdak
post 1.09.2007, 16:45:56
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 1.05.2007
Skąd: Gryfino

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


W celach zarobkowych naprzykład.
Możesz też rozdzielić urzytkowników i np. jesli mają opłacony abonament mogą korzystać z jakiś dodatkowych funkcji.
Np. : Mieć swoją książkę telefoniczną na Twojej stronie ;]
Go to the top of the page
+Quote Post
kkuubbaa88
post 1.09.2007, 17:56:14
Post #6





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


a jak mniej wiecej to sie robi ? rozdziela informacje ? nadaje jakies atrybuty uzytkownikowi ?
Go to the top of the page
+Quote Post
Hazel
post 1.09.2007, 18:46:01
Post #7





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Domyślnie możesz nadawać do tego pola wartość 0 (zwykły użytkownik), a 1 lub 2 zmienisz w bazie ręcznie dla adminów lub modów, bo przecież nie będzie ich bardzo dużo...


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 1.09.2007, 21:34:52
Post #8





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


zalozmy, ze tak zrobie i admin ma 2 mod ma 1 a user ma 0 smile.gif teraz gdy chcialbym wyswietlac dla kazdego osobne informacje na stronie to wszystko sie trzyma tylko za pomoca warunkow ? oraz sesji ? czy sa jakies inne metody ? lepsze ? czy cos ? smile.gif
Go to the top of the page
+Quote Post
Hazel
post 1.09.2007, 22:03:26
Post #9





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Generalnie wszystko za pomocą warunków i sesji, jak to napisałeś.
A jak to sobie zaimplementujesz - czy będziesz miał plik OgromnySkrypt.php, w nim 14324123590 linii kodu i sprawdzenia za każdym razem, czy to admin, czy mod, czy user, czy loser, czy też może będziesz stosował jakże przydatne ponowne stosowanie kodu, OO, dziedziczenie i rozszerzanie właściwości klas, to już Twoja sprawa...
Kręgosłupem może być na przykład:
  1. <?php
  2. switch ($wynik_zapytania['pozycja'])
  3. case 0:
  4. include ('user.php');
  5. break;
  6. case 1:
  7. include ('mod.php');
  8. break;
  9. case 2:
  10. include ('admin.php');
  11.  
  12. ?>

I to może być jedyna zawartość w pliku index.php, jeśli dobrze wszystko rozplanujesz i zastosujesz dziedziczenie klas.

Ten post edytował Hazel 1.09.2007, 22:04:38


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 1.09.2007, 22:23:17
Post #10





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


czyli co proponujesz ? zrobienie mega wielkiego kodu php ktory za kazdym razem bedzie sprawdzal kto to i wyswietlal odpowiednie elementy, czy 3 rozne strony z odpowiednia trescia ? w zaleznosci wlasnie od zalogowania na te stronie zostanie ktos przeniesiony ? czy tez w tych klasach... ale to juz musze sie douczyc na ich temat tongue.gif
Go to the top of the page
+Quote Post
Hazel
post 2.09.2007, 08:54:46
Post #11





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Jasne, że trzy różne strony z odpowiednią treścią...
Proponuję napisać klasę Strona_uzyt, która będzie wyświetlała stronę użytkownika, następnie klasę Strona_mod, która będzie dziedziczyć od klasy Strona_uzyt i rozszerzać ją o niektóre operacje dostępne tylko dla moderatorów, no i klasę Strona_admin, dziedziczącą od Strona_mod i rozszerzającą ją o funkcje administratorów. No i te klasy zawrzeć w odrębnym pliku, a tworzyć ich egzemplarze i wywoływac ich operacje w plikach user.php, mod.php i admin.php. Tak ja bym to zrobił.


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 2.09.2007, 12:02:25
Post #12





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


masz racje smile.gif to bedzie najlepsze wyjscie smile.gif a mam jeszcze pytanie smile.gif jakie przywileje powinno miec konto w mysql, ktore bedzie na zalogowanych uzytkownikow ? aby mogli oblugiwac np ksiege gosci, sondy, i cos dodac od siebie ? konto dla niezalogowanych wiem, ze nie bedzia mialo zadnych mozliwosci... nic dodawac nic pisac i w ogole... ale user ?
Go to the top of the page
+Quote Post
Hazel
post 2.09.2007, 14:54:09
Post #13





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


To już zależy od tego, co przewidujesz - jakie zapytania ma wykonywać użytkownik. Jak przypuszczam, będą to: SELECT, INSERT, UPDATE I DELETE. Ale ja w swoich aplikacjach czasem zmuszony jestem nadać użytkownikom przywilej ALTER, choćby do automatycznego zmieniania autoinkrementacji tabeli po usunięciu rekordu (choć ALTER teoretycznie jest przywilejem typowo administracyjnym). Jednak myślę, że 4 w/w przywileje powinny wystarczyć w większości przypadków. Pamiętaj też o zasadzie najmniejszego przywileju - jeśli w aplikacji użytkownik nigdy nie wykonuje na przykład zapytań UPDATE (co zdarza się dość często, szczególnie w małych aplikacjach), to nie należy nadawać mu przywileju UPDATE. Dość oczywiste, jak się pomyśli, ale wielu programistów "z zasady" nadaje 4 w/w przywileje użytkownikom, co jest błędem.

A co do tego, co napisałeś - księga gości i sondy - na pewno SELECT i INSERT, a jeśli przewidujesz również możliwość kasowania i modyfikacji swoich postów/głosów w sondzie, to także odpowiednio DELETE i UPDATE.

Pozdrawiam.

Ten post edytował Hazel 2.09.2007, 14:54:51


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 2.09.2007, 22:48:16
Post #14





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


Dzieki smile.gif Wszystko Mi Sie Przyda smile.gif Bardzo Mi pomogles smile.gif Mam Tylko JEszcze jedno male pytanie smile.gif otoz mam cala liste tych przywilejow smile.gif niestety nie wiem dokladnie co niektore znacza sad.gif

ALTER
CREATE TEMPORARY TABLES
CREATE VIEW
DELETE
DROP
FILE
INDEX
INSERT
LOCK TABLES
PROCESS
RELOAD
SELECT
SHOW DATABASES
SHOW VIEW
SHUTDOWN
SUPER
UPDATE

znasz moze jakas strone gdzie to jest opisane co za co jest odpowiedzialne ? albo jesli moglbys mi to tak troche przetlumaczyc/wytlumaczyc bylbym wdzieczny smile.gif

pozdrawiam smile.gif
Go to the top of the page
+Quote Post
Hazel
post 3.09.2007, 07:51:57
Post #15





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Chciałem Ci napisać, że 5 minut googlowania, ale... nie znalazłem takiej strony, ku mojemu zdziwieniu tongue.gif nawet w obcych językach chyba nic nie było (znaczy na pewno było, ale nie chciało mi sie szukac na 20 stronie wśród wyników tongue.gif)
To, co wrzuciłeś, nie jest pełną listą przywilejów, ale to co ja Ci daję, też nią nie jest (zależy jeszcze, co traktować jako przywilej).

ALL - nie wiadomo, czy to przywilej, czy nie, zależy jak patrzeć tongue.gif Jest równoznaczny z przywilejem ALL PRIVILEGES i oznacza nadanie użytkownikowi wszystkich przywilejów (występuje w poleceniu GRANT, które też jest przywilejem tongue.gif).
Jego przeciwieństwem jest "przywilej" (?) USAGE, który oznacza nienadanie użytkownikowi żadnego przywileju (użytkownik z przywilejem USAGE może sie tylko zalogować i wylogować, a przywileje zazwyczaj nadaje mu się w tym czasie, ale to inna bajka - może przecież być potrzebny komuś użytkownik bez przywilejów, chociaż nie wiem do czego tongue.gif)

ALL PRIVILEGES - patrz wyżej tongue.gif

ALTER - przywilej administracyjno-userski, pozwala na zmianę struktury istniejących już tabel, czyli dodawanie i usuwanie kolumn z tabel, zmianę nazw kolumn/tabel, zmianę typów danych w kolumnach, zezwala na używanie polecenia ALTER.

CREATE - przywilej administraycjno-userski, pozwala na tworzenie nowych baz i tabel, zezwala na używanie odpowiednio poleceń CREATE TABLE i CREATE DATABASE.

CREATE TEMPORARY TABLES - przywilej administracyjno-userski, pozwala na tworzenie tabel tymczasowych, zezwala na używanie polecenia CREATE TEMPORARY TABLE.

CREATE USER - przywilej administracyjno-userski, pozwala na tworzenie nowych użytkowników, usuwanie ich, zmianę ich nazwy oraz odbieranie przywilejów, zezwala na używanie odpowiednio poleceń: CREATE USER, DROP USER, RENAME USER I REVOKE.

CREATE VIEW - przywilej administracyjno-userski, pozwala na używanie polecenia CREATE VIEW, które służy do tworzenia nowego widoku.

DELETE - przywilej typowo userski, pozwala na usuwanie z tabeli istniejących wierszy, zezwala na używanie polecenia DELETE.

DROP - przywilej administracyjno-userski, pozwala na usuwanie baz i tabel, zezwala na używanie polecenia DROP.

FILE - przywilej typowo administracyjny, pozwala na wczytywanie danych z plików do tabel i z tabel do plików, zezwala na używanie poleceń LOAD INTO OUTFILE oraz LOAD DATA INFILE.

GRANT - tutaj też trudno to w sumie nazwać przywilejem, a jeśli juz to rekurencyjnie, bo... GRANT powala na nadawanie przywilejów, czyli używanie polecenia GRANT.

INDEX - przywilej administracyjno-userski, pozwala na tworzenie i usuwanie indeksów w tabelach, zezwala na używanie poleceń CREATE INDEX i DROP INDEX.

INSERT - przywilej typowo userski, pozwala na wstawianie nowych wierszy do tabel, zezwala na używanie polecenia INSERT.

LOCK TABLES - przywilej administracyjny, zezwala na używanie polecenia LOCK TABLES, służącego do zablokowaniu jakiejś tabeli podczas tworzenia kopii zapasowej.

PROCESS - przywilej typowo administracyjny, pozwala na śledzenie procesów serwera i przerywanie ich.

RELOAD - przywilej typowo administracyjny, pozwala na odświeżenie przywilejów, tabel, dziennika zdarzeń, listy nazw komputerów i takie tam, przydaje się do przeładowania tabel, które zawierają informacje na temat praw dostępu, aby nie trzeba było kończyć pracy serwera i wznawiać jej ponownie po zmianie uprawnień, zezwala na używanie polecenia FLUSH.

SELECT - przywilej typowo userski, pozwala na wyszukiwanie wierszy z tabel, zezwala na używanie polecenia SELECT.

SHOW DATABASES - przywilej administracyjno-userski, pozwala na używanie polecenia SHOW DATABASES, służącego do wyświetlania nazw wszystkich baz znajdujących się na serwerze.

SHOW VIEW - przywilej administracyjno-userski, pozwala na używanie polecenia SHOW VIEW, służącego do pokazywania wszytskich widoków.

SHUTDOWN - przywilej typowo administracyjny, pozwala na zakończenie pracy serwera MySQL.

SUPER - przywilej typowo administracyjny, pozwala na definiowanie triggerów.

UPDATE - przywilej typowo userski, pozwala na zmianę wartości kolumn w wierszach tabel, zezwala na używanie polecenia UPDATE.

USAGE - patrz ALL.

WITH GRANT OPTION - też nie wiadomo, czy to przywilej, czy nie, ważne, że chodzi o to, że użytkownik z przywilejem takim może nadawać innym użytkownikom takie przywileje, jakie sam ma. Raczej nie polecam dla mało skomplikowanych systemów, szczerze to nigdy nie stosowałem - może mój błąd.


To chyba tyle, mało o tym w necie jest, może komuś się przyda...
Podział na przywileje administracyjne i userskie (a tym bardziej administracyjno-userskie, które są moim własnym tworem), jest bardzo umowny - nikt nie mówi, że użytkownik nie może mieć nadanego przywileju SHUTDOWN, a czy jest to niebezpieczne, musi zdecydować sam administrator... jak chce nadać - niech se nadaje tongue.gif

Obowiązuje oczywiście zasada najmniejszego przywileju, która mówi, że użytkownik powinien mieć TYLKO takie przywileje, które są mu w danej chwili potrzebne - pisałem o tym niżej.

Pzdr.


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 3.09.2007, 09:00:30
Post #16





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

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


dobrze smile.gif mam uzytkownika smile.gif zrobilem go przez wsadzenie do tabeli user wszystkich danych smile.gif obecnie ma tylko te 4 podstawowe przywileje smile.gif a gdzie to mole enum wsadzic ? z wartoscia 1 ? a potem jak go na stronie rozroznic ? czyli przeczytac ? odczytac ? sprawdzic ?
Go to the top of the page
+Quote Post
Cienki1980
post 3.09.2007, 09:19:20
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(kkuubbaa88 @ 3.09.2007, 10:00:30 ) *
dobrze smile.gif mam uzytkownika smile.gif zrobilem go przez wsadzenie do tabeli user wszystkich danych smile.gif obecnie ma tylko te 4 podstawowe przywileje smile.gif a gdzie to mole enum wsadzic ? z wartoscia 1 ? a potem jak go na stronie rozroznic ? czyli przeczytac ? odczytac ? sprawdzic ?


@kkuubbaa88 może teraz wyjadę jak Filip z konopi ale pozwól, że zapytam Ciebie w jakim celu tworzysz użytkowników w mysqlu questionmark.gif

Jeżeli chodzi Ci o użytkowników jakiejś strony/ portalu / systemu internetowego, którzy mają się tam logować i mają mieć tam odpowiednie uprawnienia do różnych modułów to tworzenie użytkownika do każdej osoby rejestrującej się jest pomyłką.
W takich sytuacjach jest jeden użytkownik w bazie danych ( dane tego użytkownika podajesz do funkcji PHPowych łączących się z bazą danych ) a osoby rejestrujące się to nowe rekordy w bazie danych.

Tak możesz zrobić o wiele dokładniejsze zarządzanie uprawnieniami do poszczególnych modułów strony ( systemu/ portalu itp ) jak i jakie czynności mogą wykonywać w danych modułach ( SELECT INSERT UPDATE DELETE )

Jeżeli jednak pytasz o tworzenie użytkowników w MySQLu nie z zamiarem wykorzystania tychże użytkowników na stronie / portalu / systemie to wtedy nie zawracaj sobie głowy moją wypowiedzią biggrin.gif


--------------------
404
Go to the top of the page
+Quote Post
Hazel
post 3.09.2007, 09:55:42
Post #18





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


@Cienki1980
Ej no, bez przesady, wyjechałeś jakbyś na Marsie mieszkał, myślałem, że to oczywiste jest sciana.gif
A może jednak nie...

Więc powtórzę po Tobie, że:

@kkuubbaa88
użytkownik MySQLa nie ma nic wspólnego z rejestracją użytkowników na stronie/grze/portalu...

A pole typu ENUM po prostu dodajesz do tabeli użytkowników...

Ten post edytował Hazel 3.09.2007, 09:56:39


--------------------
Go to the top of the page
+Quote Post
Cienki1980
post 3.09.2007, 10:19:15
Post #19





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(Hazel @ 3.09.2007, 10:55:42 ) *
@Cienki1980
Ej no, bez przesady, wyjechałeś jakbyś na Marsie mieszkał, myślałem, że to oczywiste jest sciana.gif
A może jednak nie...


Ja przeczytałem dokładnie to co pisze kkuubbaa88 a w szczególności ten post:
Cytat
masz racje smile.gif to bedzie najlepsze wyjscie smile.gif a mam jeszcze pytanie smile.gif jakie przywileje powinno miec konto w mysql, ktore bedzie na zalogowanych uzytkownikow ? aby mogli oblugiwac np ksiege gosci, sondy, i cos dodac od siebie ? konto dla niezalogowanych wiem, ze nie bedzia mialo zadnych mozliwosci... nic dodawac nic pisac i w ogole... ale user ?


Dlatego wolałem od razu napisać niż pchać w złą stronę


--------------------
404
Go to the top of the page
+Quote Post
Hazel
post 3.09.2007, 10:21:31
Post #20





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


No słusznie, ja też to tak odebrałem sciana.gif sadsmiley02.gif


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:09