From 440cf85fa88a87b710ae6c590c7b52fd1246dfa4 Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Sun, 28 Jul 2019 20:44:46 +0500 Subject: [PATCH] add view grant objects --- Release_(3.0)/pgAdmin3.exe | Bin 10447872 -> 10447872 bytes schema/pgRole.cpp | 85 +++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/Release_(3.0)/pgAdmin3.exe b/Release_(3.0)/pgAdmin3.exe index 5c588e30ded4bc6f67bbb922b9784987db44d5fa..1fbe5a48839f1286c309558691bb69e4dad03664 100644 GIT binary patch delta 12801 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 URMq(Vs>aP#jepqI_{aMH1R=e(@Bjb+ delta 7098 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 grantee\n") +wxT(" union all\n") +wxT(" /* Colunas (TODO: se o revoke on table from x retirar acesso das colunas, nao precisa desse bloco) */\n") +wxT("/* select \n") +wxT(" 'columns'::text as type, column_name||' ('||table_name||')' as objname,\n") +wxT(" grantor, grantee, privilege_type\n") +wxT(" from information_schema.role_column_grants\n") +wxT(" where \n") +wxT(" table_schema not in ('information_schema', 'pg_catalog')\n") +wxT(" and grantor <> grantee\n") +wxT(" union all\n") +wxT("*/\n") +wxT(" /* Funcoes / Procedures */\n") +wxT(" select 'routine'::text as type, routine_schema||'.'||routine_name as objname, grantor, grantee, privilege_type\n") +wxT(" from information_schema.role_routine_grants\n") +wxT(" where grantor <> grantee\n") +wxT(" and routine_schema not in ('information_schema', 'pg_catalog')\n") +wxT(" union all\n") +wxT(" /* Outros objetos */\n") +wxT(" select 'object'::text as type, object_name||'( '||object_type||')' as objname, grantor, grantee, privilege_type\n") +wxT(" from information_schema.role_usage_grants\n") +wxT(" where object_type <> 'COLLATION' and object_type <> 'DOMAIN'\n") +wxT(") aa where aa.grantee='")+GetName()+("' group by type,objname,grantee order by 1,2;\n"); + pgSet *roles = GetConnection()->ExecuteSet(query); + + if (roles) + { + //GRANT SELECT ON TABLE public.v_b TO okomgr; + wxString prev=wxEmptyString; + wxString addgrant=wxEmptyString; + while (!roles->Eof()) + { + if (wxT("tables")==roles->GetVal(wxT("type")) ) { + addgrant += wxT("\nGRANT ") + roles->GetVal(wxT("priv")) + wxT(" ON TABLE ") + qtIdent(roles->GetVal(wxT("objname"))) + + wxT(" TO ") + qtIdent(GetName()); + } + if (wxT("routine")==roles->GetVal(wxT("type")) ) { + addgrant += wxT("\nGRANT EXECUTE ON FUNCTION ") + qtIdent(roles->GetVal(wxT("objname"))) + + wxT(" TO ") + qtIdent(GetName()); + } + if (wxT("schema")==roles->GetVal(wxT("type")) ) { + addgrant += wxT("\nGRANT USAGE ON SCHEMA ") + qtIdent(roles->GetVal(wxT("objname"))) + + wxT(" TO ") + qtIdent(GetName()); + } + addgrant += wxT(";"); + roles->MoveNext(); + } + sql += wxT("\n")+ addgrant + wxT("\n"); + delete roles; + } + + if (GetConnection()->BackendMinimumVersion(9, 2)) sql += GetSeqLabelsSql(); }