oracle如何新建用户名和密码?,创建用户命令是什么?

给Oracle服务器新建用户名和密码,核心操作就是先用管理员身份登录SQLPlus,然后执行CREATE USER创建账号,再用GRANT赋予登录和操作权限,整个过程通常只需要两到三分钟。

动手前先想清楚这三件事

很多人第一次接触Oracle服务器,直接打开命令行就敲CREATE USER,结果报错一大堆,原因很简单:你没有明确自己的登录身份、目标环境和操作工具。

4. Oracle数据库之用户的创建
加载中
4. Oracle数据库之用户的创建
小
小香风专柜
2193--
原视频地址

第一,确认登录身份。 新建用户必须用高权限账号操作,通常使用sys账号以SYSDBA身份登录,或者用system账号登录,普通用户没有创建账号的权限。

第二,确认目标环境。 Oracle 12c之后的版本引入了容器数据库(CDB)和可插拔数据库(PDB)的概念,大多数业务数据存放在PDB里,如果你登录的是CDB根容器,直接创建的用户可能带C##前缀,而且无法直接访问业务库。多数情况下,你需要先在SQLPlus里切换容器:

ALTER SESSION SET CONTAINER = 你的PDB名称;

第三,选好操作工具。 生产环境推荐直接用SQLPlus命令行,干净、稳定、没有图形界面依赖,如果你习惯可视化操作,用PL/SQL Developer或Oracle SQL Developer也能完成,但底层执行的本质还是SQL语句。

oracle创建用户并授权:从登录到验证的完整流程

这里给出一套在真实服务器上直接可用的操作步骤,假设你要给一个新入职的同事创建一个叫demo_user的账号,密码是Demo#2026。

第一步:登录Oracle数据库

在服务器命令行输入:

sqlplus / as sysdba

如果是远程连接,用:

sqlplus sys/密码@服务器IP:1521/服务名 as sysdba

登录成功后,界面上会显示SQL>提示符。

第二步:执行CREATE USER命令

CREATE USER demo_user IDENTIFIED BY "Demo#2026";

这条命令会创建一个叫demo_user的用户,密码是Demo#2026。注意:如果密码包含特殊字符,一定要用双引号括起来。

如果你需要指定默认表空间和临时表空间,可以写完整版:

CREATE USER demo_user IDENTIFIED BY "Demo#2026"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;

第三步:授予登录和基本操作权限

新创建的用户什么都没有,连登录都不行,必须授权:

GRANT CONNECT, RESOURCE TO demo_user;
  • CONNECT:允许用户连接数据库。
  • RESOURCE:允许用户创建表、视图、序列等对象,适合开发人员。

如果你是给业务应用账号授权,通常还要加上:

GRANT CREATE SESSION TO demo_user;

第四步:验证登录是否成功

退出当前会话,重新用新账号登录:

sqlplus demo_user/"Demo#2026"@服务器IP:1521/服务名

如果能看到SQL>提示符,说明创建成功。

oracle 19c创建用户命令详解:关键参数不能写错

Oracle 19c是目前国内企业使用相当普遍的版本,在19c里创建用户,不少细节和旧版本不太一样,这里逐一说明。

密码规则:不要用简单密码

Oracle 19c默认开启了密码复杂度验证,密码长度建议不少于8位,最好包含大写字母、小写字母和数字,如果密码过于简单,Oracle会直接拒绝执行,行业共识认为,生产环境密码至少要混合特殊字符,比如Admin#2026这种级别。

表空间设置:不设置也能用,但建议设置

如果不指定表空间,Oracle会使用USERS表空间,并且默认配额为0,也就是说用户无法创建任何表,很多人建完用户后无法建表,就是卡在这里。

建议在创建时指定配额:

CREATE USER demo_user IDENTIFIED BY "Demo#2026"
DEFAULT TABLESPACE users
QUOTA 100M ON users;

PDB还是CDB:搞错容器就白干

19c里如果登录的是CDB根容器,执行创建用户命令时会提示ORA-65096: 公用用户名或角色名无效,解决方式有两种:

  • 切换到目标PDB:ALTER SESSION SET CONTAINER = ORCLPDB1;
  • 使用C##前缀创建公共用户:CREATE USER C##demo_user ...

据Oracle官方文档说明,绝大多数业务场景下都建议在PDB里创建普通用户,尽量避免在根容器下操作。

密码过期策略

默认配置下,Oracle用户的密码有有效期限制,通常是180天,密码过期后,用户登录会报ORA-28002或ORA-28001错误,如果你不希望频繁要求业务方改密码,可以在创建时指定:

CREATE USER demo_user IDENTIFIED BY "Demo#2026"
PROFILE app_user_profile;

或者在创建后用ALTER USER调整:

ALTER USER demo_user PASSWORD EXPIRE;

该命令会强制用户首次登录时修改密码,如果你希望密码不过期,需要修改对应的Profile配置。

Oracle新建用户后无法登录的常见原因排查

实际操作中,很多人在服务器上创建完用户,兴冲冲地去连接,结果登录不了,行业共识认为,下面三个问题占了绝大多数情况。

ORA-01017:用户名或密码无效

这是最常见的报错,原因不外乎两种:密码写错,或者账号被锁定,如果你使用的是远程登录,还要检查网络服务名配置是否正确。

排查顺序:

  • 在服务器本地用sqlplus重试,排除网络因素。
  • 检查大小写:Oracle密码是区分大小写的,Demo#2026和demo#2026完全不同。
  • 用管理员账号检查用户状态:
SELECT username, account_status, lock_date FROM dba_users WHERE username = 'DEMO_USER';

如果状态显示LOCKED,执行ALTER USER demo_user ACCOUNT UNLOCK;解锁。

ORA-01045:用户没有CREATE SESSION权限

登录时提示ORA-01045: user lacks CREATE SESSION privilege; logon denied,说明你的GRANT CONNECT没写,或者写错了对象,重新执行:

GRANT CONNECT TO demo_user;

网络连接超时或监听器无响应

这种情况跟用户本身没关系,是Oracle监听器的问题,检查监听服务是否启动:

lsnrctl status

如果监听没起来,执行lsnrctl start,防火墙和tnsnames.ora文件里的服务名也经常是罪魁祸首。

忘记密码怎么办:重置密码的正确操作

先说一个核心原则:Oracle数据库忘记密码,不需要卸载重装,只要你有SYSDBA权限,就能直接重置。

具体操作步骤:

sqlplus / as sysdba
ALTER USER demo_user IDENTIFIED BY "NewPass#2026";

这条命令执行后,新密码立即生效,如果报ORA-28001: the password has expired,属于密码过期,同样用上面命令重置即可。

如果连sys账号的密码都忘了,处理方式会更复杂一些,需要修改服务器的oraPwd认证文件,通常由DBA在操作系统层面操作,一般建议在系统文件层面备份$ORACLE_HOME/dbs/目录下的密码文件。

重置密码还要注意一个细节:账号被锁定的情况下,重置密码不会自动解锁,需要额外执行:

ALTER USER demo_user ACCOUNT UNLOCK;

生产环境里,建议由DBA统一记录密码变更时间和原因,避免事后追责说不清楚。

关于Oracle数据库怎么新建用户名和密码的常见疑问

Q1:oracle新建用户后无法登录,但账号和密码都确认无误,是什么原因?

最可能是用户没有CREATE SESSION权限,或者服务名写错,用管理员身份登录后,执行GRANT CONNECT TO 用户名;,然后检查连接字符串里的服务名是否对应目标数据库,还有一种隐蔽情况:你连接的是CDB,而用户创建在某个PDB里,连接时必须指定该PDB的服务名。

Q2:Oracle 19c创建用户命令中,IDENTIFIED BY后的密码可以用数字开头吗?

可以,只要密码符合Oracle的复杂度要求,数字开头没有任何问题,但如果密码以数字开头且包含特殊字符,建议用双引号包住整个密码字符串,否则可能出现解析错误,生产环境密码建议混合字母、数字和特殊字符,不要用纯数字或连续递增序列。

Q3:生产环境给应用系统新建用户,应该授予哪些权限?

如果应用只需要读写业务表,授予CONNECT和RESOURCE角色即可,如果应用需要执行存储过程、触发器或其他程序单元,还需要补充GRANT EXECUTE ON 存储过程名 TO 用户名;,不建议直接授予DBA角色,DBA权限过大,一旦账号泄露,整个数据库都有风险,合理的做法是按模块最小授权,业务增长后再动态补充权限。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/787386.html

赞 (0)
上一篇 2026年11月7日 22:06
下一篇 2026年11月7日 22:07

相关推荐

  • 服务器U盘不能启动怎么办,BIOS怎么设置U盘启动?

    服务器u盘启动不能启动,多数情况下不是U盘坏了,而是启动模式、引导方式或镜像写入格式三者不匹配所致, 按本文顺序排查,几分钟内就能定位问题,服务器u盘启动失败常见原因排查服务器比台式机挑剔得多,同一块U盘在普通电脑上能引导,插到服务器上就是黑屏、转圈或直接进系统,这是业内最常见的故障场景,下面按排查优先级排序……

    2026年10月14日
    200
  • CF一进游戏就显示连接服务器失败怎么办?,是什么原因?

    遇到CF一进游戏就显示连接服务器失败,通常是因为本地网络波动、游戏文件损坏或服务器临时维护,通过重启路由器、验证游戏完整性或切换加速节点即可解决,网络链路异常的排查与修复网络链路是连接本地客户端与游戏服务器的桥梁,一旦出现数据包丢失或路由节点拥堵,客户端发出的握手请求就无法抵达服务器,从而导致连接失败的提示,基……

    2026年7月29日
    2000
  • 在ASP.NET中实现登录功能全攻略,步骤详解与代码示例 | ASP.NET登录页面如何设置?掌握高效用户认证技巧

    在ASP.NET中实现安全高效的用户登录:核心方案与最佳实践ASP.NET实现安全用户登录的核心方案是:利用ASP.NET Core Identity框架构建认证系统,结合强密码策略、多因素认证(MFA)、防范OWASP Top 10风险(如CSRF、XSS、SQL注入)及安全会话管理,确保用户身份验证过程既便……

    2026年2月11日
    11900
  • 傲游主机CN2 GIA VPS月付54元起值得买吗,傲游主机洛杉矶机房评测

    傲游主机凭借CN2 GIA优质线路与灵活的月付方案,成为追求低延迟与稳定性的建站及开发者的优选,月付54元起即可在洛杉矶、香港或韩国机房中灵活部署,在服务器租赁市场,线路质量往往比硬件配置更决定用户体验,对于许多需要连接国内或亚洲区域的用户而言,普通的国际线路常常面临晚高峰拥堵、丢包率高的问题,傲游主机推出的C……

    2026年6月26日
    2010
  • CS2无法访问官方服务器怎么办,有哪些解决方法?

    CS2无法访问官方服务器,最直接的解决办法是依次检查网络连接、验证游戏文件完整性、切换加速节点或重启路由器,多数玩家在完成这几步后即可重新进入官方匹配,先判断cs2连不上官方服务器是哪种情况遇到cs2进不去官方服务器的时候,别急着重装游戏,先看报错形态,不同表现对应的故障点完全不同,登录阶段报错:连接超时或服务……

    2026年9月24日
    400
  • e5-2603v4服务器性能怎么样?,适合家用吗?

    e5-2603v4服务器本身性能不算强,但便宜、稳定、功耗低,特别适合跑轻量级虚拟化、NAS、软路由和中小型企业应用,是低预算自建服务器的务实选择,以几百元的硬件成本换一台能7×24小时跑业务的机器,这是它到现在还有市场空间的根本原因,下面把性能、搭配、用途、对比和二手选购要点一次说清,为什么说e5-2603v……

    2026年9月28日
    300
  • 资讯门户站应对高并发架构怎么做?,高并发架构方案怎么选

    资讯门户站应对高并发,关键不是先堆服务器,而是把读流量尽量推到CDN和多级缓存,把写流量异步化,再用弹性扩容兜底, 这套思路能同时照顾突发热点、百度爬虫抓取和成本控制,资讯门户站高并发架构怎么设计?先拆流量和读写比例资讯门户站和电商、社交产品不一样,它多数情况下是读多写少,文章详情页、列表页、首页被反复访问,评……

    2026年10月20日
    200
  • AIoT领域的企业有哪些?AIoT行业龙头企业排名

    AIoT(人工智能物联网)行业的核心竞争格局已从单一的技术比拼转向生态构建与场景落地的综合较量,当前,AIoT领域的企业有明显的分层态势,头部企业凭借底层技术壁垒占据基础设施高地,中腰部企业则深耕垂直场景,通过差异化解决方案实现商业闭环,未来的行业红利将属于那些能够打通“端-边-云-网-智”全链路,并在工业、家……

    2026年3月15日
    15700
  • 服务器IIS能运行但操作系统无法进入,IIS正常运行但系统进不去怎么办

    当服务器IIS能正常运行,但操作系统却无法进入时,问题本质并非IIS故障,而是底层系统启动链中断,IIS作为Windows服务之一,依赖于操作系统内核、引导程序及关键系统文件的完整可用性;一旦系统无法加载至服务层,IIS即便配置完好也无法“独立存活”,本文直击核心,从现象识别、常见诱因、精准排查到解决方案,提供……

    程序编程 2026年4月18日
    5300
  • asp中使用split方法时,如何处理特殊字符分割导致的错误结果?

    ASP中高效分割字符串的利器:Split函数详解与实践在ASP (VBScript) 中,Split 函数是将一个字符串根据指定的分隔符拆分成一个一维数组的核心工具,其基本语法为:Split(expression[, delimiter[, count[, compare]]]),其中expression是待分……

    2026年2月3日
    13030

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注