【问题标题】:How do I create a user that can create users in Oracle 12c?如何创建可以在 Oracle 12c 中创建用户的用户?
【发布时间】:2016-01-16 13:37:32
【问题描述】:

我已经创建了一个用户,授予了除了 sysdba 之外你可以在 SQL Developer 中看到的所有权限,并以新用户身份登录,但我仍然无法创建其他用户。

这是我到目前为止所做的:

  1. 以本地 sysdba 身份登录;

  2. 运行:

    CREATE USER USERA IDENTIFIED BY "PWDpwd123" DEFAULT TABLESPACE TBS1
    TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
    
  3. 将您在 SQL Developer 中可以看到的所有权限和角色授予 USERA;

  4. 以USERA身份登录;

  5. 运行:

     CREATE USER USERB IDENTIFIED BY "pwd321" DEFAULT TABLESPACE TBS2
     TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
    

然后我得到一个ORA-01031 ERROR。怎么了? 非常感谢您的帮助!

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您需要向该用户授予CREATE USER 系统权限。

    GRANT CREATE USER to username;
    

    您还可以向该用户授予ALTER USERDROP USER 系统权限。

    请参阅文档:https://docs.oracle.com/database/121/SQLRF/statements_9013.htm#i2077938

    系统权限名称:CREATE USER

    创建用户。此权限还允许创建者:

    在任何表空间上分配配额。设置默认和临时 表空间。在 CREATE USER 语句中分配配置文件。


    编辑 - 实际示例


    C:\>sqlplus system as sysdba
    
    SQL*Plus: Release 12.1.0.2.0 Production on Sat Jan 16 15:16:52 2016
    
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Enter password:
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    
    SQL> create user test123 identified by test;
    
    User created.
    
    SQL> grant connect to test123;
    
    Grant succeeded.
    
    SQL> grant create user to test123;
    
    Grant succeeded.
    
    SQL> connect test123
    Enter password:
    Connected.
    SQL> create user alamakota1 identified by alamakota;
    
    User created.
    
    SQL> select user from dual;
    
    USER
    ------------------------------
    TEST123
    
    SQL>
    

    最后一条命令SELECT user FROM dual 显示,当前(登录的)用户是user123

    【讨论】:

    • 谢谢!但是请您粘贴链接或显示实用代码吗?
    • 如您所见,我已将任何可能的权限授予USERA。代码在11g或更老的版本运行流畅,所以我怀疑是不是跟Oracle版本有关。
    • 我已将测试会话的日志附加到答案中。
    • 如何创建名称不以C## 开头的用户?我有一个ORA-65096 试图这样做。我是 Oracle 的一个完全新手,只有一些 MSSQL 知识,所以请帮助我。
    • 我有一个非 CDB 安装(没有多租户容器数据库)。您已安装 CDB,因此所有用户名都必须以 c## 开头,请参阅文档:docs.oracle.com/database/121/SQLRF/… 在非 CDB 安装中,用户名不能以 c## 开头。
    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多