在升級後解決物件擁有權差異 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在升級後解決物件擁有權差異

Babelfish 4.6 版和更新版本以及 5.2 版和更新版本,都包含透過 TDS 端點對物件擁有權處理所做的變更。當您透過 TDS 端點建立新物件時,這些物件現在由結構描述擁有者 (而不是目前使用者) 擁有。當您從較 4.6 或 5.2 更舊的版本升級時,相較於現有物件,此擁有權變更可能會影響新物件的許可行為。

為了解決這些擁有權差異,Babelfish 提供 sys.generate_alter_ownership_statements() 函數。此函數會產生 SQL 陳述式,使物件擁有權與結構描述擁有權保持一致。

處理物件擁有權時,請注意下列限制:

  • 透過 PostgreSQL 端點獲授予 CREATE 許可的使用者無法透過那些結構描述中的 TDS 端點建立物件。

  • 不建議透過 PostgreSQL 端點修改對 T-SQL 物件的許可,這可能會導致不正確的 T-SQL 行為。

  • 新舊物件的存取許可可能有所不同,因為其擁有權不相符。例如,請考慮 sch_own 擁有的結構描述,其中包含 dbo 擁有的物件。在這種情況下,與升級之後建立的物件 (sch_own 擁有) 相比,升級之前建立的物件 (dbo 擁有) 可能具有不同的存取許可。這可能會影響 SELECT 和 INSERT 等操作。

如果資料庫叢集包含在較 4.6 或 5.2 更舊的 Babelfish 版本中建立的物件,請考慮調整其擁有權。

解決物件擁有權差異
  1. 使用 PostgreSQL 端點連線至資料庫叢集中的 babelfish_db 資料庫。

  2. 執行以下命令:

    SELECT * from sys.generate_alter_ownership_statements();

    這會產生 SQL 陳述式清單,這些陳述式是為了標準化物件之間的擁有權。

  3. 在測試環境執行產生的陳述式,先驗證其效果,再套用到生產環境。

我們建議您執行這些陳述式,以在資料庫中實現一致的物件擁有權模型。