如何在Oracle 12c中创建一个可以创建用户的用户?

4
我已创建了一个用户,授予了除sysdba以外的SQL Developer中所有权限,并用新用户登录,但仍无法创建其他用户。
以下是我迄今为止所做的事情:
  1. Login as local sysdba;

  2. Run:

    CREATE USER USERA IDENTIFIED BY "PWDpwd123" DEFAULT TABLESPACE TBS1
    TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
    
  3. Grant all privileges and roles you can see in SQL Developer to USERA;

  4. Login as USERA;

  5. Run:

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

然后我收到了一个ORA-01031错误,这是怎么回事呢? 非常感谢您的帮助!

1个回答

5
您需要将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


谢谢!但你能否贴个链接或展示一份实际的代码? - t123yh
正如您所看到的,我已经授予USERA所有可能的权限。该代码在11g或更早版本中运行顺畅,因此我怀疑它是否与Oracle版本有关。 - t123yh
我已经将一个测试会话的日志附加到答案中。 - krokodilko
如何创建一个用户名不以 C## 开头的用户?我尝试这样做时遇到了 ORA-65096 错误。我是 Oracle 的新手,只有一些 MSSQL 知识,请帮帮我。 - t123yh
我有一个非CDB安装(没有多租户容器数据库)。你有CDB安装,所以所有用户名都必须以“c##”开头,请参阅文档:https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503 在非CDB安装中,用户名不能以“c##”开头。 - krokodilko
我会尝试重新安装Oracle。谢谢你的帮助! - t123yh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接