能够修改订阅者侧模式的用户可以作为超级用户执行任意代码。将这些表上的所有权和TRIGGER
特权限制为超级用户信任的角色。 此外,如果不受信任的用户可以创建表,则只使用显式列出表的发布。 也就是说,只有当超级用户信任允许在发布者或订阅者上创建非临时表的所有用户时,才创建FOR ALL TABLES
的订阅。
用于复制连接的角色必须具有REPLICATION
属性(或者是超级用户)。 如果角色缺少SUPERUSER
和 BYPASSRLS
,发布者的行安全策略可以执行。 如果角色不信任全部表所有者,则在连接字符串中包含options=-crow_security=off
;如果表所有者随后添加行安全策略,则该设置将导致复制中断,而不是执行该策略。
角色的访问权限必须在pg_hba.conf
中配置,并且必须具有LOGIN
属性。
为了能够拷贝初始表数据,用于复制连接的角色必须在被发布的表上具有SELECT
特权(或者是一个超级用户)。
要创建发布,用户必须在数据库中有CREATE
特权。
要把表加入到一个发布,用户必须在该表上有拥有权。要创建一个自动发布所有表的发布,用户必须是一个超级用户。
要创建订阅,用户必须是一个超级用户。
订阅的应用过程将在本地数据库上以超级用户的特权运行。
特权检查仅在复制连接开始时被执行一次。在从发布者读到每一个更改记录时不会重新检查特权,在每一个更改被应用时也不会重新检查特权。
目录pg_proc存放有关函数、过程、聚集函数以及窗口函数(共称为例程)的信息。更多信息请参考CREATE FUNCTION、CREATE PROCEDURE...
目录pg_tablespace存储关于可用表空间的信息。表可以被放置在特定表空间中以实现磁盘布局的管理。与大部分其他系统目录不同,pg_...
视图pg_publication_tables提供publication与其所包含的表之间的映射信息。和底层的目录pg_publication_rel不同,这个视图展开了...
视图pg_user_mappings提供有关用户映射的信息。这是pg_user_mapping的一个公共可读视图,它对无权使用的用户省去了选项域。表51....
目录58.1. 创建自定义扫描路径58.1.1. 自定义扫描路径回调58.2. 创建自定义扫描计划58.2.1. 自定义扫描计划回调58.3. 执行自定义...
从v2版本开始,glog组件将ctx上下文变量作为日志打印的必需参数。自定义CtxKeys日志组件支持自定义的键值打印,通过...