1

我在 AWS oracle RDS 中创建了一个用户,并拥有我的表、函数和所有其他代码。因为我需要这个数据库结构的相同副本,所以我使用 SQL Developer 将它导出到一个 sql 文件。创建了另一个用户,现在想将sql文件导入这个新用户,但是抛出了权限不足的错误。

ORA-01031: 权限不足

  1. 00000 - “权限不足”

*原因:试图在没有必要权限的情况下执行数据库操作。

*行动:请您的数据库管理员或指定的安全管理员授予您必要的权限

我已授予用户权限。是因为 create table 语句中存在 user1 吗?

CREATE TABLE "user1"."MBOMCOMPONENTS" ( "COMPONENTNO" VARCHAR2(14 BYTE), "PLANT" VARCHAR2(50 BYTE) )

能否请你帮忙。谢谢你,曼朱

4

1 回答 1

2

CREATE TABLE"user1"."MBOMCOMPONENTS" ("COMPONENTNO" VARCHAR2(14 BYTE), "PLANT" VARCHAR2(50 BYTE))`

"user1"此语句在模式中构建一个表。如果当前模式不是"user1"并且当前用户缺少 CREATE ANY TABLE 权限,则该命令将失败。

我们如何拥有具有相同架构和不同数据的不同用户?

模式是用户拥有的一组对象。架构与拥有它的用户具有相同的名称。为了实现您的目标,您需要做的就是"user1".从所有 SQL 语句中删除,然后以 USER2(或任何人)身份运行脚本。

为了将来参考,SQL Developer 导出 DDL 工具有一个用于包含模式名称的复选框;默认情况下它被勾选(即包含),但如果我们想以不同的用户身份运行脚本,我们可以取消它。

于 2020-01-03T10:23:23.833 回答