[英]Create Postgres FDW using the postgres super user yet have read only access to the remote schema
我正在嘗試使用postgres
超級用戶憑據通過以下步驟創建 FDW -
postgres
testfdw
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '10.10.10.171', dbname 'testdb', port '5432', fetch_size '50000');testdb
上創建了一個名為testdb_read_only_user
的只讀遠程用戶,並授予其中所有表、序列和函數的只讀權限postgres
創建一個用戶映射postgres
服務器testfdw
選項創建用戶映射(用戶“testdb_read_only_user”,密碼“testpasswrd”)testfdw
INTO test_local_schema
;postrges
超級用戶在test_local_schema
中創建一個新的外部表時,我仍然可以創建一個,但我期望的實際行為是權限被拒絕錯誤,並且我的用戶映射基於我創建的只讀用戶在遠程數據庫上我在這里錯過了什么嗎? 請指導。
外部模式 test_local_schema 歸 postgres(超級用戶)所有,PostgreSQL 將其視為本地模式(在目標上)為您提供創建新表的選項,現在當您在 test_local_schema 中創建新的外部表時,postgres 將檢查以下約束
由於您的用戶映射在源數據庫中具有只讀用戶,您應該能夠獲取數據以便在目標數據庫中創建外部表,但是每當您更新和插入新數據時,它都會給您錯誤,因為 testdb_read_only_user 沒有任何更新/插入權限。
https://www.postgresql.org/docs/9.5/sql-createforeigntable.html https://www.postgresql.org/docs/9.5/sql-importforeignschema.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.