在 oracle 中导入 dmp 文件失败 [ORA-31685,ORA-39083,ORA-01932,ORA-31684]
import dmp file failed in oracle[ORA-31685,ORA-39083,ORA-01932,ORA-31684]
我在做什么
我已获得本地数据库的 UAT 环境、dmp 文件 setup.I 遵循描述的过程 here。
错误
以下是我收到的错误,似乎我的本地用户名缺少一些我无法弄清楚的角色。不过,我确实向 'SYSTEM' 用户授予了 ADMIN/DBA 权限。
Master table "SYSTEM"."UAT" successfully loaded/unloaded
Starting "SYSTEM"."UAT":
Processing object type SCHEMA_EXPORT/USER
ORA-31685: Object type USER:"SYSTEM" failed due to insufficient privileges. Failing sql is:
ALTER USER "SYSTEM" IDENTIFIED BY VALUES 'DABD3C3A967782B6' DEFAULT TABLESPACE "UAT01" TEMPORARY TABLESPACE "TEMP01"
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
ORA-39083: Object type ROLE_GRANT failed to create with error:
ORA-01932: ADMIN option not granted for role 'CONNECT'
Failing sql is:
GRANT "CONNECT" TO "SYSTEM"
ORA-39083: Object type ROLE_GRANT failed to create with error:
ORA-01932: ADMIN option not granted for role 'RESOURCE'
Failing sql is:
GRANT "RESOURCE" TO "SYSTEM"
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
ORA-31685: Object type DEFAULT_ROLE:"SYSTEM" failed due to insufficient privileges. Failing sql is:
ALTER USER "SYSTEM" DEFAULT ROLE "CONNECT", "RESOURCE"
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
ORA-31685: Object type TABLESPACE_QUOTA:"SYSTEM" failed due to insufficient privileges. Failing sql is:
DECLARE TEMP_COUNT NUMBER; SQLSTR VARCHAR2(200); BEGIN SQLSTR := 'ALTER USER "SYSTEM" QUOTA UNLIMITED ON "UAT01"'; EXECUTE IMMEDIATE SQLSTR;EXCEPTION WHEN OTHERS THEN IF SQLCODE = -30041 THEN SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES WHERE TABLESPACE_NAME = ''UAT01'' AND CONTENTS = ''TEMPORARY'''; EXECUTE IMMEDIATE SQLSTR INTO TEMP_COUNT; IF TEMP_COUNT
在使用管理员选项向系统用户提供 CONNECT,RESOURCE 角色后,出现以下错误。
SYSTEM USER WITH ROLES
Master table "SYSTEM"."IMPORT_JOB_SQLDEV_101" successfully loaded/unloaded
Starting "SYSTEM"."IMPORT_JOB_SQLDEV_101":
Processing object type SCHEMA_EXPORT/USER
ORA-39083: Object type USER failed to create with error:
ORA-00959: tablespace 'UAT01' does not exist
Failing sql is:
ALTER USER "SYSTEM" IDENTIFIED BY VALUES 'DABD3C3A967782B6' DEFAULT TABLESPACE "UAT01" TEMPORARY TABLESPACE "TEMP01"
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
ORA-39083: Object type TABLESPACE_QUOTA failed to create with error:
ORA-00959: tablespace 'UAT01' does not exist
Failing sql is:
DECLARE TEMP_COUNT NUMBER; SQLSTR VARCHAR2(200); BEGIN SQLSTR := 'ALTER USER "SYSTEM" QUOTA UNLIMITED ON "UAT01"'; EXECUTE IMMEDIATE SQLSTR;EXCEPTION WHEN OTHERS THEN IF SQLCODE = -30041 THEN SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES WHERE TABLESPACE_NAME = ''UAT01'' AND CONTENTS = ''TEMPORARY'''; EXECUTE IMMEDIATE SQLSTR INTO TEMP
提前致谢!!
您需要在导入转储之前创建所有需要的表空间。转储导入不创建数据库所需的物理文件
我在做什么
我已获得本地数据库的 UAT 环境、dmp 文件 setup.I 遵循描述的过程 here。
错误
以下是我收到的错误,似乎我的本地用户名缺少一些我无法弄清楚的角色。不过,我确实向 'SYSTEM' 用户授予了 ADMIN/DBA 权限。
Master table "SYSTEM"."UAT" successfully loaded/unloaded
Starting "SYSTEM"."UAT":
Processing object type SCHEMA_EXPORT/USER
ORA-31685: Object type USER:"SYSTEM" failed due to insufficient privileges. Failing sql is:
ALTER USER "SYSTEM" IDENTIFIED BY VALUES 'DABD3C3A967782B6' DEFAULT TABLESPACE "UAT01" TEMPORARY TABLESPACE "TEMP01"
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
ORA-39083: Object type ROLE_GRANT failed to create with error:
ORA-01932: ADMIN option not granted for role 'CONNECT'
Failing sql is:
GRANT "CONNECT" TO "SYSTEM"
ORA-39083: Object type ROLE_GRANT failed to create with error:
ORA-01932: ADMIN option not granted for role 'RESOURCE'
Failing sql is:
GRANT "RESOURCE" TO "SYSTEM"
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
ORA-31685: Object type DEFAULT_ROLE:"SYSTEM" failed due to insufficient privileges. Failing sql is:
ALTER USER "SYSTEM" DEFAULT ROLE "CONNECT", "RESOURCE"
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
ORA-31685: Object type TABLESPACE_QUOTA:"SYSTEM" failed due to insufficient privileges. Failing sql is:
DECLARE TEMP_COUNT NUMBER; SQLSTR VARCHAR2(200); BEGIN SQLSTR := 'ALTER USER "SYSTEM" QUOTA UNLIMITED ON "UAT01"'; EXECUTE IMMEDIATE SQLSTR;EXCEPTION WHEN OTHERS THEN IF SQLCODE = -30041 THEN SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES WHERE TABLESPACE_NAME = ''UAT01'' AND CONTENTS = ''TEMPORARY'''; EXECUTE IMMEDIATE SQLSTR INTO TEMP_COUNT; IF TEMP_COUNT
在使用管理员选项向系统用户提供 CONNECT,RESOURCE 角色后,出现以下错误。
SYSTEM USER WITH ROLES
Master table "SYSTEM"."IMPORT_JOB_SQLDEV_101" successfully loaded/unloaded
Starting "SYSTEM"."IMPORT_JOB_SQLDEV_101":
Processing object type SCHEMA_EXPORT/USER
ORA-39083: Object type USER failed to create with error:
ORA-00959: tablespace 'UAT01' does not exist
Failing sql is:
ALTER USER "SYSTEM" IDENTIFIED BY VALUES 'DABD3C3A967782B6' DEFAULT TABLESPACE "UAT01" TEMPORARY TABLESPACE "TEMP01"
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
ORA-39083: Object type TABLESPACE_QUOTA failed to create with error:
ORA-00959: tablespace 'UAT01' does not exist
Failing sql is:
DECLARE TEMP_COUNT NUMBER; SQLSTR VARCHAR2(200); BEGIN SQLSTR := 'ALTER USER "SYSTEM" QUOTA UNLIMITED ON "UAT01"'; EXECUTE IMMEDIATE SQLSTR;EXCEPTION WHEN OTHERS THEN IF SQLCODE = -30041 THEN SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES WHERE TABLESPACE_NAME = ''UAT01'' AND CONTENTS = ''TEMPORARY'''; EXECUTE IMMEDIATE SQLSTR INTO TEMP
提前致谢!!
您需要在导入转储之前创建所有需要的表空间。转储导入不创建数据库所需的物理文件