E B*_*own 4 postgresql database-permissions
是否可以将用户权限从 PostgreSQL 数据库中的一个表复制到另一个表?是否只是将pg_class.relacl目标表的列值更新为源表的值,如下所示:
UPDATE pg_class
SET relacl=(SELECT relacl FROM pg_class WHERE relname='source_table')
WHERE relname='target_table';
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但是我是否错过了使用此方法可能需要完成的任何其他操作或其他“陷阱”?
如果您可以使用命令行而不是 SQL,那么更安全的方法是使用 pg_dump:
pg_dump dbname -t oldtablename -s \
| egrep '^(GRANT|REVOKE)' \
| sed 's/oldtablename/newtablename/' \
| psql dbname
Run Code Online (Sandbox Code Playgroud)
我假设有一个unix服务器。在 Windows 上,我会使用pg_dump -s一个文件,手动编辑它,然后将其导入数据库。
也许您还需要复制对此表所拥有的序列的权限 - pg_dump 将起作用。
| 归档时间: |
|
| 查看次数: |
5104 次 |
| 最近记录: |