mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
More cleanup of FOREIGN TABLE permissions handling.
This commit fixes psql, pg_dump, and the information schema to be
consistent with the backend changes which I made as part of commit
be90032e0d
, and also includes a
related documentation tweak.
Shigeru Hanada, with slight adjustment.
This commit is contained in:
parent
c5ab8425be
commit
9bb6d97952
@ -101,7 +101,7 @@ GRANT <replaceable class="PARAMETER">role_name</replaceable> [, ...] TO <replace
|
||||
There is also an option to grant privileges on all objects of the same
|
||||
type within one or more schemas. This functionality is currently supported
|
||||
only for tables, sequences, and functions (but note that <literal>ALL
|
||||
TABLES</> is considered to include views).
|
||||
TABLES</> is considered to include views and foreign tables).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -2557,8 +2557,8 @@ CREATE VIEW _pg_foreign_tables AS
|
||||
WHERE w.oid = s.srvfdw
|
||||
AND u.oid = c.relowner
|
||||
AND (pg_has_role(c.relowner, 'USAGE')
|
||||
OR has_table_privilege(c.oid, 'SELECT')
|
||||
OR has_any_column_privilege(c.oid, 'SELECT'))
|
||||
OR has_table_privilege(c.oid, 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER')
|
||||
OR has_any_column_privilege(c.oid, 'SELECT, INSERT, UPDATE, REFERENCES'))
|
||||
AND n.oid = c.relnamespace
|
||||
AND c.oid = t.ftrelid
|
||||
AND c.relkind = 'f'
|
||||
|
@ -11804,7 +11804,6 @@ dumpTable(Archive *fout, TableInfo *tbinfo)
|
||||
namecopy = strdup(fmtId(tbinfo->dobj.name));
|
||||
dumpACL(fout, tbinfo->dobj.catId, tbinfo->dobj.dumpId,
|
||||
(tbinfo->relkind == RELKIND_SEQUENCE) ? "SEQUENCE" :
|
||||
(tbinfo->relkind == RELKIND_FOREIGN_TABLE) ? "FOREIGN TABLE" :
|
||||
"TABLE",
|
||||
namecopy, NULL, tbinfo->dobj.name,
|
||||
tbinfo->dobj.namespace->dobj.name, tbinfo->rolname,
|
||||
|
@ -2234,7 +2234,6 @@ psql_completion(char *text, int start, int end)
|
||||
" UNION SELECT 'DATABASE'"
|
||||
" UNION SELECT 'FOREIGN DATA WRAPPER'"
|
||||
" UNION SELECT 'FOREIGN SERVER'"
|
||||
" UNION SELECT 'FOREIGN TABLE'"
|
||||
" UNION SELECT 'FUNCTION'"
|
||||
" UNION SELECT 'LANGUAGE'"
|
||||
" UNION SELECT 'LARGE OBJECT'"
|
||||
@ -2246,7 +2245,7 @@ psql_completion(char *text, int start, int end)
|
||||
pg_strcasecmp(prev_wd, "FOREIGN") == 0)
|
||||
{
|
||||
static const char *const list_privilege_foreign[] =
|
||||
{"DATA WRAPPER", "SERVER", "TABLE", NULL};
|
||||
{"DATA WRAPPER", "SERVER", NULL};
|
||||
|
||||
COMPLETE_WITH_LIST(list_privilege_foreign);
|
||||
}
|
||||
|
@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201104251
|
||||
#define CATALOG_VERSION_NO 201105131
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user