如何在 Oracle 中为所有用户和权限生成 DDL
Posted
技术标签:
【中文标题】如何在 Oracle 中为所有用户和权限生成 DDL【英文标题】:How to generate DDL for all Users and privileges in Oracle 【发布时间】:2020-04-27 05:30:31 【问题描述】:我正在尝试将数据库实例从 RDS Oracle 迁移到本地 Oracle。我对数据库脚本还是很陌生。我发现这个脚本可以为我通过 SQLDeveloper 传递的单个用户完成工作。但是,我的 RDS Oracle 实例上有 200 多个用户。
https://oracle-base.com/dba/script?category=script_creation&file=user_ddl.sql
我已尝试在此处删除用户名和 rownum 的变量,但这会产生很多重复的条目。有人可以指导我为所有用户实现上述脚本结果集的最佳方法是什么。
非常感谢!
【问题讨论】:
【参考方案1】:我建议另一种方法(如果可以使用的话):数据泵。
你会执行导出
使用用户SYSTEM
或SYS
,因为他们拥有数据库并可以导出...
...FULL
数据库
内容是METADATA_ONLY
(这样你就可以跳过数据;我知道你不需要那个)
应该是这样的
expdp system/pwd file=your_db.dmp full=y content=metadata_only
在目标数据库中导入也是如此。
【讨论】:
不确定它是否适用于 RDS Oracle。我正在弄清楚。感谢您的回复以上是关于如何在 Oracle 中为所有用户和权限生成 DDL的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Keycloak 授权服务策略中为所有用户分配权限?
在Amazon Redshift中为所有模式授予用户或组的权限