使用 bash 从 postgres 使用 psql 命令传输与数据库所有权和相关实体相关的所有内容
Transfer using psql command from postgres everything related to a database ownership and related entities using bash
我有一个属于角色 postgres
的数据库。
在 bash 中使用 psql
命令我想将数据库的所有权及其中的所有内容(模式、表、视图、序列、触发器等)转移给新角色。
我有:
sudo -u postgres psql << EOF
ALTER DATABASE ${database} OWNER TO ${role};
GRANT ALL ON DATABASE ${database} TO ${role};
EOF
够了吗?
不,那不行。
如果您可以使用 REASSIGN OWNED
就好了,但是您不能使用安装超级用户这样做,因为系统对象无法更改所有权。
您必须确定要更改其所有权的所有对象,并对每个对象使用 ALTER ... OWNER TO ...
。
我有一个属于角色 postgres
的数据库。
在 bash 中使用 psql
命令我想将数据库的所有权及其中的所有内容(模式、表、视图、序列、触发器等)转移给新角色。
我有:
sudo -u postgres psql << EOF
ALTER DATABASE ${database} OWNER TO ${role};
GRANT ALL ON DATABASE ${database} TO ${role};
EOF
够了吗?
不,那不行。
如果您可以使用 REASSIGN OWNED
就好了,但是您不能使用安装超级用户这样做,因为系统对象无法更改所有权。
您必须确定要更改其所有权的所有对象,并对每个对象使用 ALTER ... OWNER TO ...
。