我是Oracle数据库的第一个用户。
现在,我要创建一个名为erdb的db模式。
我需要创建erdb用户并在sql脚本文件上授予erdb用户适当的权限。

CREATE USER dmuser IDENTIFIED BY password
DEFAULT TABLESPACE USERS
TEMPORARY
TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;
GRANT CREATE JOB TO dmuser;
GRANT CREATE MINING MODEL TO dmuser;
GRANT CREATE PROCEDURE TO dmuser;
GRANT CREATE SEQUENCE TO dmuser;
GRANT CREATE SESSION TO dmuser;
GRANT CREATE SYNONYM TO dmuser;
GRANT CREATE TABLE TO dmuser;
GRANT CREATE TYPE TO dmuser;
GRANT CREATE VIEW TO dmuser;
GRANT EXECUTE ON ctxsys.ctx_ddl TO dmuser;

但是错误发生了,sql错误:ora 01031权限不足;
请帮帮我。

最佳答案

Oracle documentation清楚地说明了以下内容:
先决条件
您必须具有创建用户系统权限。
作为系统连接,不需要sysdba,然后执行:

CREATE USER user IDENTIFIED BY password

类似地,执行其他命令来创建表空间和所需的授权等。
另一方面,关于sysdba:
从不使用sys(或sysdba)进行维护(启动、关闭、备份、恢复)
sys/sysdba是特殊的
sys/sysdba是oracle专有的(尝试打开一个sr/tar,开头是“我用sys/sysdba做的”,您将看到立即的答案)
sys/sysdba的行为与任何其他用户不同
使用sys/sysdba时,oracle会停用某些代码路径并激活其他代码路径
无论您对sys/sysdba做什么,都不会对任何其他用户验证或使相同的东西失效。
永远不要将sys/sysdba用于其他人可以完成的任何事情
用户只对某人做不到的事情使用sys/sysdba
否则。

09-30 23:48