Oracle容器数据库的用户名和密码是什么?如何正确获取并设置?

更新于
2026-08-15 03:34:13
4阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

Oracle 容器数据库与可插拔数据库的使用者管理往往让管理员头疼不已。话说回来,是在部署新程序或迁移旧程序时常见的痛点包括:无法确认当前使用者是属于 CDB 还是 PDB、默认密码不明确、账户被锁导致无法登录、密码策略配置不当等。

1️⃣ 了解 Oracle 容器数据库结构

CDB是一个虚拟数据库实例,内部可以包含多个 PDB。关键点:

Oracle容器数据库的用户名和密码是什么?如何正确获取并设置?
  • CDB$ROOT 是容器根级别的唯一使用者,用于管理整个 CDB。
  • 每个 PDB 有自己的本地使用者空间,互相隔离。
  • 共享使用者在整个 CDB 内可见,但只能访问被授权的对象。

1.1 使用者类型概览

类型作用范围示例账号
CDB 超级使用者CDB$ROOT 全局管理SYS / SYSTEM / SYS$ROOT
PDB 超级使用者PDB 内部完全控制P$SYS / SYSTEM@PDB1
共享使用者CDB 全局可见。但权限受限于角色授予MGR_USER
本地使用者仅在创建时所在的 PDB 内部可见AUDIT_USER
应用程序使用者d业务层访问权限,按需授权dBILLING_APP d>

2️⃣ 默认账号与初始密码设置流程

Oracle 在安装时会生成若干默认账号。至于最常用的有,

  • SYS – 程序管理员 - 初始密码:<安装时设置>。安装后第一次登录会强制修改。
  • SYSTEM – 数据库管理员 - 初始密码:同 SYS 或者 installer 设定。
  • SRC – 程序资源控制 - 初始密码:同 SYS。
  • BIP* – BI 相关服务账号。- 初始密码:同 SYS。
  • BIP* – BI 服务相关 - 初始密码:同 SYS。
  • BIP* - BI 相关服务 - 初始密码:同 SYS。
  • BIP* - BI 服务相关 - 初始密码:同 SYS。
  • .

      ⚠️ **安全提醒** 默认账号在生产环境中务必立刻更改为强随机密码,并启用账户锁定策略/密码历史功能防止暴力。话说回来,

      3️⃣ 如何以 Sysdba 身份登录并进行账号解锁 / 密码修改?

      登录步骤示例

      # 打开命令行窗口
      sqlplus / as sysdba
      # 成功后会出现 SQL> 提示符,即已获得 Sysdba 权限
      SQL>
      }

      解锁被锁定的普通使用者并重置密码:

      # 解锁账户
      ALTER USER  ACCOUNT UNLOCK;# 重置为新强随机口令
      ALTER USER  IDENTIFIED BY ;# 可选:立即生效并激活新口令:
      ALTER USER  PASSWORD EXPIRE;ALTER USER ;-- 登录后会提示需要更改旧口令
      # 完成后返回 SQL>
      SQL>
      }

      *注意事项*

      • "ACCOUNT UNLOCK;" 必须带分号,老实说,使用英文半角字符;否则报错,"SQL command not properly ended."
      • "IDENTIFIED BY" 后面不能出现空格或特殊符号除非用引号包围;建议使用至少12位混合字符。
      • "PASSWORD EXPIRE" 用于强制下次登录立即更改口令。
      • "ALTER USER …," 后面加 ";",不加也能执行但建议规范写法。

      查询当前 CWD 下所有使用者名及其哈希值:

      # 在 CRED 层查询所有使用者名和哈希值:
      SELECT username。password,created,last_login,account_status,lock_date
      FROM dba_users;# 若要查看特定 PBD 的信息,需要先切换到对应容器:
      ALTER SESSION SET CONTAINER = pdb_name;不过,SELECT username,password,created。
      last_login,account_status
      FROM dba_users;# 注释: 以上查询仅返回哈希字符串,Oracle 不允许以明文读取存储的密钥。SQL>

      4️⃣ 创建新的共享或本地使用者实战教程

      在 C$ROOT 创建共享使用者:

      # 切换到 C$ROOT 容器:
      ALTER SESSION SET CONTAINER = cdb$root;# 创建共享使用者:
      CREATE USER my_shared_user IDENTIFIED BY MyStrongPass!123,# 授权基本角色,例如 CONNECT + RESOURCE:
      GRANT CONNECT。RESOURCE TO my_shared_user;# 如需跨 PBD 使用,请再授予对应角色或对象访问权限:
      GRANT SELECT ANY TABLE TO my_shared_user;

      在特定 PBD 创建本地使用者:

      # 切换到目标 PBD:
      ALTER SESSION SET CONTAINER = pdb_custom;# 创建本地使用者:
      CREATE USER app_user IDENTIFIED BY AppUserPass!456,# 授权该 PBD 的资源,例如 CREATE SESSION 与 CREATE TABLES:
      GRANT CREATE SESSION TO app_user;GRANT CREATE TABLE TO app_user;

      *常见错误*

      • "<>",空格或大小写错误导致 CREATE USER 失败;请使用正确大小写且无空格。
      • "TNS_ADMIN"> /etc/oracle/network/admin/>;老实说,未配置好 TNSNames。可以使用 *sqlplus / as sysdba* 或 *sqlplus scott/tiger@orcl* 测试连接。

      5️⃣ 强化安全性—密码策略与常用方法

      ❗**不要忽视**!在生产环境里一条好的安全政策能阻止数十万次暴力攻击。不过,

      -->-->-->-->-->--> --> --> ---> ---> ---> --->--->--->--->--->--->--->--->----'>-- ->' '-->-->
      策略项建议设置范围
      Password Complexity Policy '至少12位混合大小写数字特殊字符'
      Password Expiration '90天'
      Password History '10'
      User Lockout Threshold '5 次错误尝试后自动锁定'
      User Lockout Duration '30 分钟'

      💡 小贴士:

      • Keeps Oracle instance secure by enforcing strong complexity.
      • Avoid using common words like "password"。"admin",or "oracle". Use a passphrase.
      • See Oracle docs for “Password Management” at https://docs.oracle.com/en/database/” for more details. Enable auditing on failed logins via AUDIT FAILEDLOGINSTMT.

      ⚙️ 快速切换至特定 PBD: sql ALTER SESSION SET CONTAINER = pdb_name; 再运行 SELECT username FROM dba_users WHERE account_status='OPEN'; 查看活跃账户。

      对于多实例部署。可批量脚本化上述命令,以避免手工操作误差。

      🔐 最终目标:确保所有账号都有唯一、复杂且经周期性更改的口令,而且任何未授权尝试都会被及时记录与阻断。

      Oracle容器数据库的用户名和密码是什么?如何正确获取并设置?

      ✅ 完成后你可以通过 sqlplus username/password@orcl 或 JD娱乐 驱动正常连接。🚨 若遇到“ORA‑28009: connection as sysdba is not supported by this server”,检查 $ORACLE_HOME/dbs/ 下是否有 spfile*.ora 并确认 ORACLE_SID 正确。

      🚀 对于大型团队,可考虑利用 Oracle Enterprise Manager 或 Ansible 自动化脚本完成一次性创建及策略配置。

      🎯 : - 确认你是在正确容器内操作。- 永远不要把默认口令留在明文文件中;尽快修改并记录安全存储位置。- 使用 SYS/AS SYSDBA 登录后即可解锁、更改口令还有查询敏感信息,但别忘了随后撤销 Sys 权限来保持最小权限原则。其实,

      如还有疑问。可参考官方文档《Oracle Database Security Guide》或联系 DBA 专家进行进一步排查。

      🎉 Happy DB administration!

标签:容器

Oracle 容器数据库与可插拔数据库的使用者管理往往让管理员头疼不已。话说回来,是在部署新程序或迁移旧程序时常见的痛点包括:无法确认当前使用者是属于 CDB 还是 PDB、默认密码不明确、账户被锁导致无法登录、密码策略配置不当等。

1️⃣ 了解 Oracle 容器数据库结构

CDB是一个虚拟数据库实例,内部可以包含多个 PDB。关键点:

Oracle容器数据库的用户名和密码是什么?如何正确获取并设置?
  • CDB$ROOT 是容器根级别的唯一使用者,用于管理整个 CDB。
  • 每个 PDB 有自己的本地使用者空间,互相隔离。
  • 共享使用者在整个 CDB 内可见,但只能访问被授权的对象。

1.1 使用者类型概览

类型作用范围示例账号
CDB 超级使用者CDB$ROOT 全局管理SYS / SYSTEM / SYS$ROOT
PDB 超级使用者PDB 内部完全控制P$SYS / SYSTEM@PDB1
共享使用者CDB 全局可见。但权限受限于角色授予MGR_USER
本地使用者仅在创建时所在的 PDB 内部可见AUDIT_USER
应用程序使用者d业务层访问权限,按需授权dBILLING_APP d>

2️⃣ 默认账号与初始密码设置流程

Oracle 在安装时会生成若干默认账号。至于最常用的有,

  • SYS – 程序管理员 - 初始密码:<安装时设置>。安装后第一次登录会强制修改。
  • SYSTEM – 数据库管理员 - 初始密码:同 SYS 或者 installer 设定。
  • SRC – 程序资源控制 - 初始密码:同 SYS。
  • BIP* – BI 相关服务账号。- 初始密码:同 SYS。
  • BIP* – BI 服务相关 - 初始密码:同 SYS。
  • BIP* - BI 相关服务 - 初始密码:同 SYS。
  • BIP* - BI 服务相关 - 初始密码:同 SYS。
  • .

      ⚠️ **安全提醒** 默认账号在生产环境中务必立刻更改为强随机密码,并启用账户锁定策略/密码历史功能防止暴力。话说回来,

      3️⃣ 如何以 Sysdba 身份登录并进行账号解锁 / 密码修改?

      登录步骤示例

      # 打开命令行窗口
      sqlplus / as sysdba
      # 成功后会出现 SQL> 提示符,即已获得 Sysdba 权限
      SQL>
      }

      解锁被锁定的普通使用者并重置密码:

      # 解锁账户
      ALTER USER  ACCOUNT UNLOCK;# 重置为新强随机口令
      ALTER USER  IDENTIFIED BY ;# 可选:立即生效并激活新口令:
      ALTER USER  PASSWORD EXPIRE;ALTER USER ;-- 登录后会提示需要更改旧口令
      # 完成后返回 SQL>
      SQL>
      }

      *注意事项*

      • "ACCOUNT UNLOCK;" 必须带分号,老实说,使用英文半角字符;否则报错,"SQL command not properly ended."
      • "IDENTIFIED BY" 后面不能出现空格或特殊符号除非用引号包围;建议使用至少12位混合字符。
      • "PASSWORD EXPIRE" 用于强制下次登录立即更改口令。
      • "ALTER USER …," 后面加 ";",不加也能执行但建议规范写法。

      查询当前 CWD 下所有使用者名及其哈希值:

      # 在 CRED 层查询所有使用者名和哈希值:
      SELECT username。password,created,last_login,account_status,lock_date
      FROM dba_users;# 若要查看特定 PBD 的信息,需要先切换到对应容器:
      ALTER SESSION SET CONTAINER = pdb_name;不过,SELECT username,password,created。
      last_login,account_status
      FROM dba_users;# 注释: 以上查询仅返回哈希字符串,Oracle 不允许以明文读取存储的密钥。SQL>

      4️⃣ 创建新的共享或本地使用者实战教程

      在 C$ROOT 创建共享使用者:

      # 切换到 C$ROOT 容器:
      ALTER SESSION SET CONTAINER = cdb$root;# 创建共享使用者:
      CREATE USER my_shared_user IDENTIFIED BY MyStrongPass!123,# 授权基本角色,例如 CONNECT + RESOURCE:
      GRANT CONNECT。RESOURCE TO my_shared_user;# 如需跨 PBD 使用,请再授予对应角色或对象访问权限:
      GRANT SELECT ANY TABLE TO my_shared_user;

      在特定 PBD 创建本地使用者:

      # 切换到目标 PBD:
      ALTER SESSION SET CONTAINER = pdb_custom;# 创建本地使用者:
      CREATE USER app_user IDENTIFIED BY AppUserPass!456,# 授权该 PBD 的资源,例如 CREATE SESSION 与 CREATE TABLES:
      GRANT CREATE SESSION TO app_user;GRANT CREATE TABLE TO app_user;

      *常见错误*

      • "<>",空格或大小写错误导致 CREATE USER 失败;请使用正确大小写且无空格。
      • "TNS_ADMIN"> /etc/oracle/network/admin/>;老实说,未配置好 TNSNames。可以使用 *sqlplus / as sysdba* 或 *sqlplus scott/tiger@orcl* 测试连接。

      5️⃣ 强化安全性—密码策略与常用方法

      ❗**不要忽视**!在生产环境里一条好的安全政策能阻止数十万次暴力攻击。不过,

      -->-->-->-->-->--> --> --> ---> ---> ---> --->--->--->--->--->--->--->--->----'>-- ->' '-->-->
      策略项建议设置范围
      Password Complexity Policy '至少12位混合大小写数字特殊字符'
      Password Expiration '90天'
      Password History '10'
      User Lockout Threshold '5 次错误尝试后自动锁定'
      User Lockout Duration '30 分钟'

      💡 小贴士:

      • Keeps Oracle instance secure by enforcing strong complexity.
      • Avoid using common words like "password"。"admin",or "oracle". Use a passphrase.
      • See Oracle docs for “Password Management” at https://docs.oracle.com/en/database/” for more details. Enable auditing on failed logins via AUDIT FAILEDLOGINSTMT.

      ⚙️ 快速切换至特定 PBD: sql ALTER SESSION SET CONTAINER = pdb_name; 再运行 SELECT username FROM dba_users WHERE account_status='OPEN'; 查看活跃账户。

      对于多实例部署。可批量脚本化上述命令,以避免手工操作误差。

      🔐 最终目标:确保所有账号都有唯一、复杂且经周期性更改的口令,而且任何未授权尝试都会被及时记录与阻断。

      Oracle容器数据库的用户名和密码是什么?如何正确获取并设置?

      ✅ 完成后你可以通过 sqlplus username/password@orcl 或 JD娱乐 驱动正常连接。🚨 若遇到“ORA‑28009: connection as sysdba is not supported by this server”,检查 $ORACLE_HOME/dbs/ 下是否有 spfile*.ora 并确认 ORACLE_SID 正确。

      🚀 对于大型团队,可考虑利用 Oracle Enterprise Manager 或 Ansible 自动化脚本完成一次性创建及策略配置。

      🎯 : - 确认你是在正确容器内操作。- 永远不要把默认口令留在明文文件中;尽快修改并记录安全存储位置。- 使用 SYS/AS SYSDBA 登录后即可解锁、更改口令还有查询敏感信息,但别忘了随后撤销 Sys 权限来保持最小权限原则。其实,

      如还有疑问。可参考官方文档《Oracle Database Security Guide》或联系 DBA 专家进行进一步排查。

      🎉 Happy DB administration!

标签:容器