<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1954&amp;type=atom"/>
	<updated>2014-04-07T11:25:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1954</id>
		<entry>
			<title type="html"><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5030#p5030"/>
			<content type="html"><![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]]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2014-04-07T11:25:36Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5030#p5030</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5029#p5029"/>
			<content type="html"><![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.]]></content>
			<author>
				<name><![CDATA[przesq]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1211</uri>
			</author>
			<updated>2014-04-07T11:10:08Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5029#p5029</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5027#p5027"/>
			<content type="html"><![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)]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2014-04-03T13:55:16Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5027#p5027</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odbieranie uprawnień / nadaweanie upranień dla roli]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5026#p5026"/>
			<content type="html"><![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
...]]></content>
			<author>
				<name><![CDATA[tomek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1459</uri>
			</author>
			<updated>2014-04-03T13:31:44Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5026#p5026</id>
		</entry>
</feed>
