【问题标题】:SQL - user-management --> export/import users via scriptSQL - 用户管理 --> 通过脚本导出/导入用户
【发布时间】:2013-02-01 07:02:06
【问题描述】:

我工作的公司正在将他们的数据库从 Oracle 10g 迁移到 11g。周一我们要清理我们的开发数据库并将生产数据库克隆到该存储。

我们又来了。我认为我的第二个任务有点复杂。在开发数据库上,我们有大约 200 个用户,在生产数据库上大约有 1500 个用户。现在我将编写一个脚本,该脚本应该从我们的开发数据库中返回所有用户并导出它们。之后,另一个脚本应该搜索生产数据库的所有用户,不带任何对象并将其删除,但不包括系统模式或用户模式,并导入开发数据库的旧用户。有没有办法在脚本或查询中完成所有这些事情?

最好的问候,

Chris(IT 学生,但完全是数据库新手)

【问题讨论】:

    标签: sql oracle migration export user-management


    【解决方案1】:

    要将您的用户从开发迁移到生产,您应该使用data pump import/export。您可以使用它来指定要导出/导入的用户。这也将带来他们的物品、特权等,因此您可以确保您拥有一切。

    要删除没有对象的用户,请运行以下命令生成脚本:

    SELECT 'drop user ' || username || ';' 
    FROM   dba_users u
    where  not exists (select null 
                       from   dba_objects o 
                       where  o.owner = u.username);
    

    然后您可以查看此输出,检查它是否仅删除您期望的用户并运行该脚本。

    【讨论】:

    • 不幸的是,我没有足够的权限来进行数据泵导入/导出,但我已经使用 DBMS_METADATA 编写了一个脚本,并且效果很好。您的 drop 脚本非常有用,并且很快就会运行数据库,以查找所有没有对象的用户。非常感谢您快速而乐于助人的回复。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多