<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1954</link>
		<description><![CDATA[Najświeższe odpowiedzi w Odbieranie uprawnień / nadaweanie upranień dla roli.]]></description>
		<lastBuildDate>Mon, 07 Apr 2014 11:25:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5030#p5030</link>
			<description><![CDATA[O ile dobrze widzę to tworząc role "mg", dodałeś jej prawa super użytkownika, a to oznacza, że taki użytkownik pomija kontrolę weryfikacji uprawnień w bazie danych. Zerknij na opis na stronie [url=http://www.postgresql.org/docs/current/static/role-attributes.html]PostgreSQL[/url]]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Mon, 07 Apr 2014 11:25:36 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5030#p5030</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5029#p5029</link>
			<description><![CDATA[Podepnę się pod temat bo mam podobny problem:

mam użytkownika

CREATE ROLE mg LOGIN ENCRYPTED PASSWORD ...........' SUPERUSER NOINHERIT CREATEDB CREATEROLE;
CREATE SCHEMA mg AUTHORIZATION mg; GRANT ALL ON SCHEMA mg TO mg;

przy tworzeniu tabeli:

GRANT SELECT, UPDATE, INSERT, REFERENCES, TRIGGER ON TABLE mg.tabela1 TO mg;
REVOKE DELETE ON mg.tabela1 FROM mg;

w phppgadmin dla tej tabeli uprawnienia wyglądają następująco:
Rola	SELECT 	INSERT 	UPDATE 	DELETE 	REFERENCES 	TRIGGER 	Kto nadał
mg 	Tak 	Tak 	Tak 	Nie 	Tak 	Tak 	mg

Jeżeli w przeglądarce wywołam zapytanie
Delete from tabela1 where id=1 to zapytanie się wykonuje, a ja nie chcę aby operacja delete w ogóle się wykonywała.]]></description>
			<author><![CDATA[dummy@example.com (przesq)]]></author>
			<pubDate>Mon, 07 Apr 2014 11:10:08 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5029#p5029</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5027#p5027</link>
			<description><![CDATA[o ile wiem nie ma możliwości zrobienia tego dla wszystkich baz w jednym kroku 
ja to robię tak:
CREATE ROLE UsersGrupName NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
GRANT CONNECT ON DATABASE db_name TO UsersGrupName;
REVOKE ALL ON DATABASE db_name FROM public;
GRANT UsersGrupName  TO UserName;

Dodatkowo poprawiam plik pg_hba.conf o wpis
host          db_name     +usersgrupname         10.0.0.1/8    md5

Co do zrobienia zestawienia tabelarycznego przywilejów uzytkownika to poczytaj [url]http://www.postgresql.org/docs/8.2/static/functions-info.html[/url] - np funkcja has_database_privilege(user, database, privilege)]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 03 Apr 2014 13:55:16 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5027#p5027</guid>
		</item>
		<item>
			<title><![CDATA[Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5026#p5026</link>
			<description><![CDATA[Tworzę rolę:[code]create role Malinowski NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN NOREPLICATION ENCRYPTED PASSWORD 'password' CNNECTION LIMIT -1[/code]



1. Czy jest jakiś sposób aby odebrać użytkownikowi PUBLIC uprawnienia, tak aby nie mógł:
  A) łączyć się z żadną bazą danych
  B) wyświetlać definicji funkcji, widoków, ...  nawet aby nie mógł zobaczyć jakie są dostępne widoki, funkcje, tabele, ...
  C) no i aby nie miał dostępu do żadnych danych - nawet do katalogu/ schematu publicznego
  D) ...
  E) tak aby miał odebrane absolutnie wszystkie uprawnienia



2) Na razie próbowałem tak - i od razu mam pytania:
  A) [code]revoke grant option for all on database postgres from public;[/code]
    a) ale mimo to nadal Malinowski może łączyć się z bazą - co robię źle?
    b) czy da radę napisać coś w rodzaju [code]revoke grant option for all on database * from public;[/code] - chodzi mi o ta abym nie musiał wypisywać każdej bazy danych ?

  B) czy da radę napisać coś w rodzaju revoke [code]GRANT OPTION FOR ALL ON TABLESPACE * FROM PUBLIC;[/code] tak abym nie musiał wypisywać każdej przestrzeni tabel ?

  C) Podobne pytania mam dla schematów, tabel, funkcji, ... jak dla 2-A-b, 2-B.



3) Jak wyświetlić wszystkie uprawnienia dla konkretnego użytkownika - np. w postaci listy:
tabela1 - uprawnienia
tabela2 - uprawnienia
...
kolumna1 - uprawnienia
...
schemat1 - uprawnienia
...]]></description>
			<author><![CDATA[dummy@example.com (tomek)]]></author>
			<pubDate>Thu, 03 Apr 2014 13:31:44 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5026#p5026</guid>
		</item>
	</channel>
</rss>
