1

我是 Oracle 数据库的第一个用户。

现在,我想创建一个名为 ERDB 的数据库模式。

我需要在 SQL 脚本文件上创建 ERDB 用户并向 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 权限不足;

请帮我。

4

1 回答 1

1

Oracle 文档清楚地说明了以下内容:

先决条件

您必须具有CREATE USER 系统权限

以SYSTEM身份连接,不需要SYSDBA然后执行:

CREATE USER user IDENTIFIED BY password 

同样,执行其他命令来创建表空间和所需的授权等。

另一方面,关于SYSDBA

  • 永远不要使用 SYS(或 SYSDBA),而是出于维护目的(启动、关闭、备份、恢复)
  • SYS/SYSDBA 是特殊的
  • SYS/SYSDBA 是 Oracle 专有的(尝试打开以“我用 SYS/SYSDBA 完成的”开头的 SR/TAR,您会立即看到答案)
  • SYS/SYSDBA 与任何其他用户的行为不同
  • 当您使用 SYS/SYSDBA 时,Oracle 会停用某些代码路径并激活其他代码路径
  • 无论您对 SYS/SYSDBA 做什么,都不会对任何其他用户验证或使同一件事无效。

永远不要将 SYS/SYSDBA 用于其他用户可以完成的任何事情。仅将 SYS/SYSDBA 用于其他人无法完成的事情。

于 2015-12-24T12:21:30.183 回答