【问题标题】:Create an user in Oracle database在 Oracle 数据库中创建用户
【发布时间】:2015-12-24 12:06:57
【问题描述】:

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

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

我需要创建 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 Error: ORA 01031 权限不足;

请帮帮我。

【问题讨论】:

    标签: sql database oracle createuser


    【解决方案1】:

    Oracle documentation 明确声明如下:

    先决条件

    您必须拥有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 用于某人无法完成的事情 否则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      相关资源
      最近更新 更多