【问题标题】:regarding oracle database "sysdba" user and creating a new user关于 oracle 数据库“sysdba”用户并创建一个新用户
【发布时间】:2020-09-02 10:29:28
【问题描述】:

我对 oracle 数据库非常陌生,请原谅我的问题中的任何技术错误。我正在使用 oracle 19c,我认为“system”用户的密码与“sysdba”的密码不同。在安装时,我每次都使用相同的密码,但现在在连接到系统或 "\ as sysdba" 时,连接没有问题,但是当我输入 "orcl_listener" 或 "orcl" 或 "sysdba" 的密码时,密码错误。例如: 连接系统数据库 输入密码: 错误: ORA-01017: 无效的用户名/密码;登录被拒绝

我在SQL Developer中新建连接时,使用的是用户名作为系统,密码正确。 成功 当我在 SQL Developer 中创建新连接时,我使用用户名作为 \ as sysdba 并且密码是正确的 .success 当我在 SQL Developer 中创建一个新连接时,我使用用户名作为 sysdba 并且密码是正确的。不成功并且错误说状态:失败 - 测试失败:ORA-01017:用户名/密码无效;登录被拒绝 .我是一个新用户,如果可能,请以最简单的方式向我提供oracle数据库的基本信息。


现在第二个问题是在使用系统用户名作为密码在 SQL 开发人员中创建新连接后,我展开连接,在底部,我右键单击其他用户并创建一个用户名为“hr”的新用户,这里显示“ORA-65096:无效的普通用户或角色名称”。当我使用 c## 作为前缀时,没有发生错误,但我不想要任何 c##,这意味着它必须是本地用户,但在哪里创建本地用户的选项? 请帮帮我。

【问题讨论】:

  • 几个快速的想法。首先要记住操作系统用户(也许是 Linux 用户)和数据库用户之间的区别。 “orcl_listener”可能是操作系统用户;我怀疑您是否使用该名称创建了一个数据库用户。试着记住这两种类型的用户——它们是完全不同的(但是,在 SYS 的情况下,它们是相关的)。其次,SYSDBA 不是用户;相反,你conn sys as sysdba。 SYSDBA 是 SYS 拥有的权限的集合;通常你会想con sys as sysoper 这样你就不会损坏数据库中的东西。
  • 现在:在大多数情况下,对于用户 SYS,您将使用操作系统身份验证;也就是说,您在登录时不需要提供数据库密码(即使您提供了,也会被忽略)。相反,数据库将相信 SYS 已通过操作系统正确登录。但是请注意,如果您设置了多租户数据库,则仅适用于根容器,不适用于可插拔数据库。
  • 谢谢,但是如果我在 "\ as sysdba" 中创建一个用户,在 "SYSTEM" 中创建一个用户,那么会有什么区别?嗯,我用的是windows10平台
  • 如何创建一个新的用户系统,我可以用它来存储所有数据库?我想要一个 HR 用户,一个用户定义的,如何创建?我必须创建内部系统用户吗?
  • Oracle 数据库是一个非常复杂的数据库系统,并且使用多租户选项(CDB/PDB 的东西)变得更加复杂。为了能够创建用户帐户,您需要了解很多东西,例如 CDB/PDB、表空间、安全性等。我建议您尝试使用 docs.oracle.com/en/database/oracle/oracle-database/19/admqs/… 和 OBE(以 Oracle 为例)教程进行一些自我培训。

标签: sql oracle oracle19c sysdba


【解决方案1】:

要了解普通用户和本地用户,首先要了解 Oracle 中的多租户架构:容器数据库 (CDB) 和可插拔数据库 (PDB)。

在多租户架构中,您只能在 PDB 中创建本地用户。

以用户 SYS 的身份创建与 SQL*Plus 连接的本地用户:

检查您当前的 CDB/PDB

show con_name

列出现有的 PDBS

show pdbs

转到现有的 PDB:

alter session set container=mypdb;

检查您当前的 PDB

show con_name

在当前 PDB 中创建本地用户并授予一些基本权限:

create user myuser identified by "mypwd" quota unlimited on tablespace myts;
grant create session to myuser;
grant create table to myuser; 

要使用 SQL*Plus 直接连接到此 PDB,您必须为此 PDB 使用 Oracle Net 服务:

sqlplus myuser/mypwd@myhost:myport/mypdb

【讨论】:

  • 我首先尝试了这个:alter session set container=orclpdb;会话已更改。 ________________________________________________ 但这是错误:在表空间 myts 上创建由“mypwd”配额限制的用户 myuser * 第 1 行出现错误:ORA-00922:缺少或无效选项 ______________________________________________ 如果我只是使用它,则错误为:创建用户 myuser 标识为“mypwd” * 第 1 行出现错误:ORA-01109:数据库未打开
  • 我要完成这个任务: 连接名称:myconnection 用户名:hr 密码:hr 主机名:localhost 端口:1521 SID:ORCL 这是我要创建的用户
  • 您收到 ORA-00922 错误,因为表空间 myts 不存在:在我的回答中,这只是一个示例,您必须将其替换为可以使用 select tablespace_name from dba_tablespaces 检索的现有表空间名称。
  • 但我不知道你为什么得到ORA-01109: database not open;
  • 我想我应该学习一下oracle的基础知识,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多