Stránka 1 z 1

mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 15:33
od Václav Sedlář
Dobrý den, potřeboval bych nějak zakázat, aby se záznamy v konkrétní tabulce databáze nemohly editovat a mazat... Jakmile se jednou do té tabulky vloží, už tam zůstanou...

Potřebuji, aby to nemohl smazat ani admin, který má přístup do phpmyadmina a aby to nešlo ani z webu...

Je to možné a jak? Velmi děkuji...

Re: mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 17:43
od arxeiss
Myslím, že ne. Co můžeš je, vytvořit uživatele, který to oprávnění prostě mít nebude, ale admin může vždy a všechno...
Navíc nevím, jestli na nějakém hostingu ti to tak umožní vytvářet uživatele apod...

Re: mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 19:23
od Václav Sedlář
právě- je to ta moje bakalářka a je to školní server, kde nemůžu nic...

musím si žádat o každý prd...

Re: mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 19:48
od arxeiss
Tak hold máš smůlu... Ostatně o co ti jde? Pokud neuděláš možnost mazat pomocí klikacího prostředí, a program píšeš ty, tak si budeš pamatovat že to nesmíš mazat, a pokud se někdo příhlásí jako root do PMA tak to prostě smaže kdykoli...

Re: mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 20:17
od Václav Sedlář
dělám web pro akademický senát a vedoucí si teď vzpomněl že chce mít log el. hlasování, který nepůjde smazat...

Log funguje, z webu nejde smazat, ale dnes při diskuzi na semináři se to kolegům nezdálo, že to mám jen na to úrovni.. a ne přímo v databázi ošetřený... ovšem v tu chvíli jsem nevěděl zda to jde nějak udělat...

Jde taky o to, aby se nedalo říct, že admin falšuje historii hlasování..

Re: mysql - zákaz smazání a editace

Napsal: stř 4. dub 2012, 22:29
od arxeiss
Pokud vím, toto nejde udělat ani v jiném DB systému, řešili jsme tak MSSSQL a ORACLE, a u obou jsme si při kreslení ER diagramu do vztahu zakreslili diamant, takový kosočtverec, který znamená, že jednou vložený údaj už nepůjde změnit. Já se ptal, jak se to dá ošetřit a bylo mi odpovězeno, že toto není nějaká DB vlastnost, že se to musí ošetřit programově a těma právama... takže tak
Mi připadá, že tě zkouší, prostě něco řeknou a čekají tvojí reakci

Re: mysql - zákaz smazání a editace

Napsal: čtv 5. dub 2012, 22:24
od bubanek
Václav Sedlář píše:kolegům nezdálo, že to mám jen na to úrovni.. a ne přímo v databázi ošetřený...
Požadují nesmysl

Admin je admin a může cokoliv (od toho je admin :oha: ). Pokud dělá admina nedůvěryhodná osoba není to tvůj problém.

Re: mysql - zákaz smazání a editace

Napsal: pát 6. dub 2012, 08:07
od Aigor
bubanek píše:Admin je admin a může cokoliv...
Ne tak docela, pokud se bavíme o lidech orientovaných jen na Win systémy :twisted:

Jinak často se setkávám od zadavatelů s podobně nesmyslnými požadavky a téměř vždy jde o nepochopení jejich logiky. Pokud jim (např.) vyrobím uživatele "admin", tomu v DB nastavím jen omezená práva, pak jsou všichni spokojení přestože existuje ještě uživatel "root" který má skutečná oprávnění admina 8-)

Čistě akademicky (když už jsme v tom vymýšlení pí..vin) by to možná šlo obejít přes triggery, které by daný záznam při změně nebo smazání opět obnovilo. A samozřejmě by se musela např. uzamknout pro zápis tabulka s nastavením práv, aby ani DB admin si práva nemohl obnovit - přičemž předpokládám, že DB admin nebude stejná osoba jako admin OS.
Jiným řešením by bylo použít neměnitelný storage engine, v MySQL je to třeba "Archive" kam jde jen zapisovat bez možnosti změn nebo mazání.

Neberte mě ale za slovo - pořád dál platí, že kdo má heslo admina a fyzický přístup ke stroji, může všechno 8) Nevylučuju jen, že některé z těchto návrhů by neuspokojilo zadavatele...

Re: mysql - zákaz smazání a editace

Napsal: pát 6. dub 2012, 09:56
od bubanek
Aigor píše:Ne tak docela, pokud se bavíme o lidech orientovaných jen na Win systémy :twisted:
Václav Sedlář píše:právě- je to ta moje bakalářka a je to školní server, kde nemůžu nic...
musím si žádat o každý prd...
Čuchám čuchám linux/unix

Re: mysql - zákaz smazání a editace

Napsal: pát 6. dub 2012, 10:57
od Václav Sedlář
Děkuji moc za pomoc...

Upřesním jak to u nás funguje:

1) je tam server, o který se stará nějaký admin, který se mnou a mojí BP nemá nic společnýho...prostě nějaký učitel...

2) za tím adminem jsem došel a řekl že dělám BP, kde potřebuji databázi a přístup k ní+misto na servru..

3)zařídil (postupně) a založil databázi v phpmyadminovi a dal mi heslo, takže je tam hodně databázi, ale já se dostanu jen na mojí přidělenou

4)já pak mám v php ošetřeno oprávnění např takto:

Kód: Vybrat vše

if($_SESSION['opravneni']=="admin" && $_SESSION['prihlasen'] == 1){//ověření oprávnění...
...
...
...
...
}else{
echo "Nejste přihlášen, nebo nemáte dostatečné oprávnění!";
}
5)a to je vše, nevím, ale asi nemám možnost sám přenastavovat práva v databázi...
6)a u té tabulky co nechci aby šla smazat je to udělaný tak, že v php není žádný příkaz na smazáni, ani tlačítko...jen výpis...

Re: mysql - zákaz smazání a editace

Napsal: sob 7. dub 2012, 04:27
od 1Pupik1989
Jestli pan učitel nemyslel spíš SQL injection.

Re: mysql - zákaz smazání a editace

Napsal: sob 7. dub 2012, 12:38
od Václav Sedlář
nn, v tomto případě není ve skriptu žádný insert/update...jen čtení...

Re: mysql - zákaz smazání a editace

Napsal: sob 7. dub 2012, 19:34
od bubanek
Jinak než to máš to nevyřešíš