oracle怎么创建用户:实操完整流程
oracle怎么创建用户的核心实操为:使用sys、system管理员账号登录数据库,执行CREATEUSER语句定义用户名、密码、默认表空间与配额,再通过GRANT语句授予登录、查询、操作等对应权限,未授权的新建用户无法正常连接和使用数据库,该方法适配Oracle11g、12c、21c主流版本,仅适用于数据库管理员及拥有CREATEUSER系统权限的操作人员,普通数据库用户无执行权限。
oracle创建用户前置准备
你需要先完成权限与环境校验,创建Oracle用户的核心前提是登录账号具备CREATEUSER系统权限,生产环境中统一使用system管理员账号操作,sys账号优先级更高但多用于数据库核心运维,不建议日常创建普通业务用户。登录方式可选择SQL命令行、PL/SQLDeveloper、Navicat等主流数据库工具,登录语句为sqlplussystem/管理员密码@数据库实例名,登录成功后可直接执行创建语句。
Oracle数据库对用户密码有基础规范要求,遵循Oracle官方12c及以上版本安全策略,密码长度不少于8位,需包含大小写字母、数字、特殊符号组合,避免纯数字、纯字母或简单组合,否则大概率触发密码校验报错,导致用户创建失败。
oracle基础用户创建语句
基础最简创建语句可快速生成可登录用户,语法为createuser用户名identifiedby密码;,实操示例为createusertest_useridentifiedbyTest@123456;,执行后即可生成空白用户。该语句仅定义账号密码,未配置表空间、资源配额与权限,用户创建后无法执行查询、建表、连接数据库等任何操作,仅完成账号注册。
完整规范创建语句包含表空间、资源配额配置,是生产环境标准用法,语句为createusertest_useridentifiedbyTest@123456defaulttablespaceuserstemporarytablespacetempquota20Monusers;。其中defaulttablespace指定用户数据存储表空间,temporarytablespace指定临时表空间用于排序、运算,quota20M限定用户最大可占用20M存储空间,避免资源滥用。
oracle新建用户权限授予操作
新建Oracle用户必须手动授权,无默认权限。基础必备权限为登录权限,执行grantcreatesessionto用户名;,授权后用户可正常登录数据库。日常业务开发场景可授予基础开发权限集合,执行grantconnect,resourceto用户名;,包含建表、索引、视图、查询、新增、修改、删除等常用操作权限。
高权限场景需单独授予管理员权限,执行grantdbato用户名;,该权限可实现用户管理、表空间管理、数据备份等全量运维操作,风险较高,仅可授予专职运维人员,大多数业务场景不建议使用。
不同授权方案适配对比
| 授权方案 | 包含权限范围 | 适用场景 | 风险等级 |
|---|---|---|---|
| 仅createsession | 仅支持数据库登录,无任何数据操作权限 | 临时查看类只读账号、审计账号 | 极低 |
| connect+resource | 基础登录、数据表操作、对象创建权限 | 开发人员日常业务操作 | 较低 |
| dba全权限 | 数据库全部运维、管理、用户操作权限 | 专职数据库管理员运维 | 较高 |
oracle用户创建常见报错处理
用户名重复是最高频报错,提示ORA-01920:usernameconflictswithanotheruser,出现该提示时直接更换全新未使用的用户名即可,Oracle数据库不允许存在同名用户,无论大小写均视为同一账号。
密码不符合规范会触发ORA-28003:passwordverificationfailed报错,12c及以上高版本Oracle安全校验更严格,只需调整密码为大小写、数字、特殊符号组合的8位以上复杂密码,重新执行创建语句即可解决。
oracle创建用户适用边界
该创建方式仅适用于单机Oracle数据库与常规PDB容器数据库的普通用户创建,不适用于CDB根容器用户、全局企业目录用户的创建,全局用户需额外配置X.509证书信息,语法与普通用户完全不同。
普通业务用户禁止授予dba权限,过高权限会导致数据库数据误删、结构篡改、数据泄露等安全隐患,大幅提升数据库运维风险。
