有人可以幫助我嗎?我需要使用腳本在數據庫中找出所有對象。我需要這個的原因是,我要求更改所有數據庫對象的所有者,因此我需要首先列出所有對象。如何使用腳本查找數據庫中的所有對象?
回答
如果您要改變每一個對象從角色A
到角色B
,你可能會喜歡REASSIGN OWNED
:
REASSIGN OWNED BY A TO B
在PostgreSQL(或幾乎任何其他關係型數據庫管理系統)中,我建議查看元數據表(system catalog)。
例子。你想要的所有表:
db => \d pg_tables
View "pg_catalog.pg_tables"
Column | Type | Modifiers
-------------+---------+-----------
schemaname | name |
tablename | name |
tableowner | name |
tablespace | name |
hasindexes | boolean |
hasrules | boolean |
hastriggers | boolean |
db => select tablename from pg_tables;
會得到你所有表的列表。您可以使用查詢來構建腳本來更改所需表的所有權。同樣,您可以查詢目錄中的其他視圖/表以獲取其他對象類型(序列,索引,您將其命名)。
非常感謝您的回覆。這會給我所有的表,但其他對象如模式,約束,索引,觸發器等呢?有什麼方法可以列出它們嗎? – Arun
我剛剛更新了答案。看看我發佈的鏈接。 'pg_class'和/或'pg_index'可能是你需要的索引。觸發器的'pg_proc'。 –
我想你可能想用REASSIGN OWNED代替。不需要識別所有的對象,只需要識別用戶。
如果你能做到的pg_dump和pg_restore的創建一個新的數據庫添加--no-所有者標記在pg_restore上,並且運行pg_restore作爲您希望設置所有權的用戶應該爲此工作。
- 1. 在所有數據庫的所有對象中查找表名
- 2. 如何查找使用UNION的數據庫中的所有對象
- 3. 需要查詢來查找數據庫中的所有對象?
- 4. 如何編寫腳本以查找SQL Server數據庫對象(如storedproc和views)中使用的數據庫?
- 5. 腳本數據庫中的所有對象到表
- 6. 如何在Toad for MySQL中生成所有數據庫對象的腳本
- 7. 查找對SQL Server數據庫中的對象的所有引用
- 8. 程序生成的所有對象腳本在數據庫
- 9. 將所有的SQL數據庫對象腳本到VS數據庫項目
- 10. 爲所有數據庫上的所有對象生成模式腳本
- 11. 如何查找Perl腳本使用的所有模塊?
- 12. 在Firebase數據庫中查找對象
- 13. 如何在SQL Proc中使用Intersystems緩存數據庫中的對象腳本
- 14. 數據庫對象腳本的順序?
- 15. 生成用於SQL Server數據庫的所有對象的腳本
- 16. 如何在SQL Server數據庫中查找最大的對象?
- 17. 使用Java查找實例中的所有SQL Server數據庫
- 18. 使用Idiorm查找數據庫中的所有記錄
- 19. MongoDB:查找數據庫中的所有低/大寫副本
- 20. 如何找到git對象數據庫中的所有git日誌消息?
- 21. 使用Play Framework在數據庫中查找單個對象
- 22. 如何查找SQLServer數據庫中所有空間的使用位置
- 23. 如何使用CakePHP模型關聯查找所有對象?
- 24. 如何通過查詢將數據庫中的所有對象的權限授予數據庫用戶
- 25. 更改數據庫中所有對象的所有權
- 26. 如何查找所有數據庫引用
- 27. 查找孤立數據庫對象
- 28. 如何處理需要查找數據庫中的數據的值對象
- 29. sql server:如何在所有數據庫對象中找到完全匹配?
- 30. 如何查找所有與兩個數組相交的對象?
我想下面的查詢,但它是拋出一個語法錯誤。我錯過了什麼嗎?將擁有的postgres重新分配給「Arun」; – Arun
你使用什麼具體的查詢?另外,什麼版本的PostgreSQL? –
我用過的查詢是:將擁有的postgres重新分配給「Arun」; (使用pgadmin)。我正在使用版本8.3 – Arun