<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Zmiana hasła z PHP]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=263</link>
		<description><![CDATA[Najświeższe odpowiedzi w Zmiana hasła z PHP.]]></description>
		<lastBuildDate>Mon, 17 Aug 2009 07:22:29 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Zmiana hasła z PHP]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1149#p1149</link>
			<description><![CDATA[Dzięki
Teraz SECURITY DEFINER już jest jasne, ciekawe rozwiązanie, ale zostanę przy swoim rozwiązaniu. Wyznaję zasadę, że im mniej uprawnień tym dłużej wszystko działa :-) Bazą ja będę zarządzał, a hasło użytkownikowi mogę zmienić również w np. SQL Manager. 

Jeszcze raz dzięki.]]></description>
			<author><![CDATA[dummy@example.com (adamleon)]]></author>
			<pubDate>Mon, 17 Aug 2009 07:22:29 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1149#p1149</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Zmiana hasła z PHP]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1146#p1146</link>
			<description><![CDATA[Co do twojego rozwiązania jest ono jak najbardziej poprawne. 
Co do opcji SECURITY DEFINER to nadaje ona uprawnienia osobie wykonujacej funkcje takie jak miala osoba bedąca owner-em (twórcą funkcji), co daje możliwość przeciązenia funkcji i umożliwienia użytkownikowi pełniącemu funkje administratora strony www (ale nie będącego super użytkownikiem serwera SQL) dokonania zmiany hasła dowolnemu użytkownikowi. Co przydaje się w korporacjach gdzie działają takie twory jak Help Desk.]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 13 Aug 2009 18:20:02 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1146#p1146</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Zmiana hasła z PHP]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1144#p1144</link>
			<description><![CDATA[dzięki za odpowiedź

narazie w ramach testu zrobiłem tak, nawet działa :-)
w klasie "zmiana_hasla" dokonuje logowania do bazy na stare hasło sprawdzając czy użytkownik przypadkiem nie zmienia czyjegoś hasła, jeżeli chodzi o opcje SECURITY DEFINER to nie mam pojęcia co to jest, ale poczytam z czym to się je.
Nie rozumiem dlaczego mam nadawać uprawnienia superuzytkownika osobie wykonujacej funkcję.


try
		{

if (isset($_POST['uzytkownik']) && $_POST['oldhaslo'] && $_POST['newhaslo1'] && $_POST['newhaslo2'])
{
	if ($_POST['newhaslo1']==$_POST['newhaslo2'])
	{
	
	$stmtt=zmiana_hasla::daneDoPolaczenia('pgsql','192.168.1.3','Baza1',$_POST['uzytkownik'],$_POST['oldhaslo']);
			
		
		$sql=("ALTER ROLE \"".$_POST['uzytkownik']."\" PASSWORD '".$_POST['newhaslo1']."'");
		
				
		$stmtt = zmiana_hasla::getInstance()->prepare($sql);
				
		$ilosc = $stmtt->execute();
		
		$obiekt=zmiana_hasla::getInstance();
		
	if ($obiekt)
		{
			echo '<br> Hasło zostało zmienione !!!';
			
		}
		
	}
		else { echo 'Podane nowe hasło w polach różni się';}
	}
	
	else
	{echo 'wypelnij pola <br>';}
		}
		
	catch (PDOException $e) 
		{
			
			if ($e->getCode() == '0')
        echo "Wystapił problem z weryfikacją, jeżeli login i stare hasło są poprawne zgłoś błąd do administratora <br> ".$e->getMessage();
			die();
		}]]></description>
			<author><![CDATA[dummy@example.com (adamleon)]]></author>
			<pubDate>Thu, 13 Aug 2009 07:00:46 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1144#p1144</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Zmiana hasła z PHP]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1140#p1140</link>
			<description><![CDATA[napisz funcje po stronie serwera SQL (z poziomu super uzytkownika) tak by nadawala uprawnienia superuzytkownika osobie ja wykonujacej (opcja SECURITY DEFINER)

wykorzystaj w niej komende EXECUTE (jako parametr podaj zestaw komend modyfikujące haslo zalogowanego uzytkownika)
nazwe uzytkownika pobierz raczej za pomoca polecenia session_user (a nie current_user)

a potem poprostu wykonaj z poziomu PHP SELECT nazwa_funkcji('nowe_haslo');
wszelkie sprawdzenia rób po stronie php ale pomietaj by nie zmienic hasla na puste bo użytkownik raczej wiecej po takiej operacji sie nie zaloguje
Nadaj uprawnienia do tej funkcji grupie PUBLIC

PS
Najlepiej by bylo aby uzytkonika ponownie zalogowac przed wyslaniem w/w select-a]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Mon, 10 Aug 2009 16:17:26 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1140#p1140</guid>
		</item>
		<item>
			<title><![CDATA[Zmiana hasła z PHP]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1117#p1117</link>
			<description><![CDATA[Witam
Chcę zmienić hasło do bazy z poziomu PHP
dwa poniższe zapytania działają , ale bindowanie już nie, kombinowałem na różne strony i ciągle błąd, może ktoś mi pomoże ? Chciałbym aby bindowanie też działało, zawsze gdzieś może się przydać.
z góry dzięki

//$sql=("ALTER ROLE \"adam\" PASSWORD '123'");   //to dziala
//$sql=("ALTER ROLE \"".$_POST['uzytkownik']."\" PASSWORD '".$_POST['newhaslo1']."'");   // to dziala

bindowanie

s$sql=("ALTER ROLE \"":uzytk"\" PASSWORD '":haslo"'");

		
$stmtt = zmiana_hasla::getInstance()->prepare($sql);
$stmtt->bindValue(':uzytk',$_POST['uzytkownik'],PDO::PARAM_STR);
$stmtt->bindValue(':haslo',$_POST['newhaslo1'],PDO::PARAM_STR);
		
$zmieniaj= $stmtt->execute();]]></description>
			<author><![CDATA[dummy@example.com (adamleon)]]></author>
			<pubDate>Sat, 01 Aug 2009 11:06:18 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1117#p1117</guid>
		</item>
	</channel>
</rss>
