如何在 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】:

我建议另一种方法(如果可以使用的话):数据泵。

你会执行导出

使用用户SYSTEMSYS,因为他们拥有数据库并可以导出... ...FULL数据库 内容是METADATA_ONLY(这样你就可以跳过数据;我知道你不需要那个)

应该是这样的

expdp system/pwd file=your_db.dmp full=y content=metadata_only

在目标数据库中导入也是如此。

【讨论】:

不确定它是否适用于 RDS Oracle。我正在弄清楚。感谢您的回复

以上是关于如何在 Oracle 中为所有用户和权限生成 DDL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用c#在winforms中为每个用户授予权限

我们如何在 Keycloak 授权服务策略中为所有用户分配权限?

在Amazon Redshift中为所有模式授予用户或组的权限

oracle只有某用户权限,要删除该用户下的所有对象如何操作

如何查看oracle用户具有的权限和角色

如何查看oracle用户具有的权限和角色?