cloudsql到cloudsql迁移权限问题



我正在尝试使用gcp数据库迁移工具将cloudsql postgres 9.6实例迁移到cloudsql postgres 13实例。

我在UI中设置cloudsql.enable_pglogicalcloudsql.logical_decoding为on,并重新启动实例,但在尝试使用postgres帐户运行迁移时,我仍然得到以下错误:

连接源数据库失败。确保用户具有所需的特权。解决问题,然后重新启动迁移作业。详细信息:复制用户postgres没有足够的权限:复制用户没有对数据库postgres的schema逻辑的USAGE权限;复制用户对表public没有SELECT权限。doc_comment_read表示复制用户对public表没有SELECT权限。mailbox_google,复制用户没有对public表的SELECT权限。mailbox_microsoft,复制用户对表public没有SELECT权限。在表公共上,复制用户没有SELECT权限。复制用户group_members在public表上没有SELECT权限。

复制用户没有SELECT权限

我发现了一些东西

  1. 不能使用postgres用户进行迁移,因为postgres用户没有复制属性。

https://cloud.google.com/sql/docs/postgres/users

The postgres user is part of the cloudsqlsuperuser role, and has the following attributes (privileges): CREATEROLE, CREATEDB, and LOGIN. It does not have the SUPERUSER or REPLICATION attributes.

  1. 您需要确保使用数据库的所有者来执行迁移,而不是postgres用户。

  2. 你必须给你的用户在逻辑模式上的权限。

GRANT USAGE ON SCHEMA pglogical TO my_user;GRANT ALL ON SCHEMA pglogical TO my_user;

  1. 为您的用户添加复制属性(您需要从postgres用户执行此操作)

ALTER ROLE my_user with REPLICATION;

只是补充一下,完全可以使用postgres用户进行复制。您需要为它设置复制属性

ALTER ROLE postgres with REPLICATION;

,然后授予必要的权限(参见第3点)。

相关内容

  • 没有找到相关文章

最新更新