<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=371&amp;type=atom"/>
	<updated>2010-01-11T16:53:25Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=371</id>
		<entry>
			<title type="html"><![CDATA[Odp: utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1696#p1696"/>
			<content type="html"><![CDATA[nie - mam w 5 różnych schematach :(]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-01-11T16:53:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1696#p1696</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1695#p1695"/>
			<content type="html"><![CDATA[[quote=WitekS] Jednak bardziej martwi mnie fakt, że logując się do baze za pomocą pgAdmina nawet jako użytkownik z minimalnymi uprawnieniami mam podgląd na całą strukturę bazy łącznie z definicjami funkcji oczywiście oprócz danych w tabelach... :([/quote]


A wszystko masz w schemie public?]]></content>
			<author>
				<name><![CDATA[psocha]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=519</uri>
			</author>
			<updated>2010-01-11T08:03:34Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1695#p1695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1693#p1693"/>
			<content type="html"><![CDATA[Dodałem tylko do funkcji wyzwalacza z której są uruchamiane inne funkcje między innymi tworzące tabele no i jest OK. Wielkie dzięki. A co do bezpieczeństwa to chyba nie ma innego sposobu :{. Jednak bardziej martwi mnie fakt, że logując się do baze za pomocą pgAdmina nawet jako użytkownik z minimalnymi uprawnieniami mam podgląd na całą strukturę bazy łącznie z definicjami funkcji oczywiście oprócz danych w tabelach... :(]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-01-10T22:27:50Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1693#p1693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1690#p1690"/>
			<content type="html"><![CDATA[A próbowałeś utworzyć funkcję z opcją SECURITY DEFINER, chociaż nie jest to bezpieczne każde jej wywołanie będzie wykonywane na prawach użytkownika który ją stworzył.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-01-09T20:03:41Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1690#p1690</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[utworzenie tabeli przez funkcję - jakie uprawnienia]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1689#p1689"/>
			<content type="html"><![CDATA[Mam zdefiniowanego użytkownika który może wpisywać dane do kilku tabel. W wyniku wpisania do jednej z nich przez funkcję wyzwalacza powinny się utworzyć odpowiednie tabele (przez funkcje) i wpisy do nich. Problem polega na utworzeniu tabeli przez funkcję jak uruchamiam jako postgres to jest ok a inaczej otrzymuję komunikat 
[code]
ERROR:  must be member of role "postgres"
CONTEXT:  SQL statement " CREATE TABLE pojazdy."_001"(
          "dt_data_czas" timestamp(0) without time zone NOT NULL,
          "int_nr_diag" integer NOT NULL
          --CONSTRAINT "fk_001" FOREIGN KEY (int_nr_diag)
          --REFERENCES ustawienia.t_diag_1_1 (int_nr_diag)
          --MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE
        ) WITH OIDS;
            ALTER TABLE pojazdy."_001" OWNER TO postgres;
            GRANT ALL ON TABLE pojazdy."_001" TO postgres;
            GRANT SELECT ON TABLE pojazdy."_001" TO "serwis";
            GRANT SELECT ON TABLE pojazdy."_001" TO "TW";
            GRANT ALL ON TABLE pojazdy."_001" TO "MTDataProvider";
            COMMENT ON TABLE pojazdy."_001" IS 'początek i koniec informacji diagnostycznej dla pojazdu "_001"'"
PL/pgSQL function "f_int_create_table1_tbl" line 10 at EXECUTE statement
SQL statement "SELECT  pojazdy.f_int_create_table1_tbl( $1 )"
PL/pgSQL function "f_tri_ai_mt_read" line 48 at PERFORM
[/code]
jak "od komentuję" 
[code]
          --CONSTRAINT "fk_001" FOREIGN KEY (int_nr_diag)
          --REFERENCES ustawienia.t_diag_1_1 (int_nr_diag)
          --MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE
[/code]
to mam inny komunikat dotyczący relacji:
[code]
ERROR:  permission denied for relation t_diag_1_1
CONTEXT:  SQL statement " CREATE TABLE pojazdy."_001"(
          "dt_data_czas" timestamp(0) without time zone NOT NULL,
          "int_nr_diag" integer NOT NULL,
          CONSTRAINT "fk_001" FOREIGN KEY (int_nr_diag)
          REFERENCES ustawienia.t_diag_1_1 (int_nr_diag)
          MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE
        ) WITH OIDS;
            --ALTER TABLE pojazdy."_001" SET TABLESPACE baza2;
            ALTER TABLE pojazdy."_001" OWNER TO postgres;
            GRANT ALL ON TABLE pojazdy."_001" TO postgres;
            GRANT SELECT ON TABLE pojazdy."_001" TO "serwis";
            GRANT SELECT ON TABLE pojazdy."_001" TO "TW";
            GRANT ALL ON TABLE pojazdy."_001" TO "MTDataProvider";
            COMMENT ON TABLE pojazdy."_001" IS 'początek i koniec informacji diagnostycznej dla pojazdu "_001"'"
PL/pgSQL function "f_int_create_table1_tbl" line 10 at EXECUTE statement
SQL statement "SELECT  pojazdy.f_int_create_table1_tbl( $1 )"
PL/pgSQL function "f_tri_ai_mt_read" line 48 at PERFORM
[/code] 
Jakie muszę dać minimalne a zarazem wystarczające uprawnienia żeby możliwe było prawidłowe wykonywanie funkcji wyzwalacza wraz z tworzeniem tabel i do jakich obiektów muszę te uprawniania przypisać. Dodam jeszcze że baza jest podzielona na schematy i próbowałem już dawać uprawnienia do wykonywania funkcji, tworzenia bazy, wszystkie do schematu ale bez skutecznie.]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2010-01-09T16:28:09Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1689#p1689</id>
		</entry>
</feed>
