ORA-00988: missing or invalid password(s)
2016-03-17 22:22 潇湘隐者 阅读(21061) 评论(1) 编辑 收藏 举报创建账号或修改账号密码时有可能会遇到ORA-00988: missing or invalid password(s),那么什么情况下会遇到这种错误呢? 一般是因为密码的设置不符合命名规范:
1:密码是关键字,但是没有用双引号包裹起来。
2:密码以数字开头,但是没有用双引号包裹起来
3:密码包含特殊字符,并且没有用双引号包裹起来。
官方文档关于passwor的介绍如下:
The BY password clause lets you creates a local user and indicates that the user must specify password to log on to the database. Passwords can contain only single-byte characters from your database character set regardless of whether the character set also contains multibyte characters.
Passwords must follow the rules described in the section "Schema Object Naming Rules", unless you are using the Oracle Database password complexity verification routine. That routine requires a more complex combination of characters than the normal naming rules permit. You implement this routine with the UTLPWDMG.SQL script, which is further described in Oracle Database Security Guide.
而Schema Object Naming Rules就包含下面这些规则。
More usernames than passwords were specified in a GRANT statement. A valid password must be specified for each username listed in the GRANT statement. This error indicates that you are violating the object names and qualifiers for Oracle. The following rules apply when naming objects:
1) Names must be from 1 -30 characters long with the exceptions: - Names of database are limited to 8 characters. - Names of database links can be as long as 128 characters.
2) Names cannot contain quotation marks.
3) Names are not case-sensitive. (注意,这条只适用于ORACLE 10g)
4)A name must begin with and contain an alphanumeric character from your database character set unless surrounded by double quotation marks. 5) Oracle strongly discourages using $ and #.
下面我们通过几个案例来了解一下上面的内容吧
1:密码是关键字,但是没有用双引号。
SQL> create user test identified by table;
create user test identified by table
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)
SQL> create user test identified by 'table';
create user test identified by 'table'
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)
SQL> create user test identified by "table";
User created.
2:密码以数字开头,但是没有使用双引号
SQL> create user test identified by 123456;
create user test identified by 123456
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)
SQL> create user test identified by '123456';
create user test identified by '123456'
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)
SQL> create user test identified by "123456";
User created.
3:密码包含特殊字符,并且没有用双引号。
SQL> drop user test;
User dropped.
SQL> create user test identified by k*123$6;
create user test identified by k*123$6
*
ERROR at line 1:
ORA-00922: missing or invalid option
SQL> create user test identified by 'k*123$6';
create user test identified by 'k*123$6'
*
ERROR at line 1:
ORA-00988: missing or invalid password(s)
SQL> create user test identified by "k*123$6";
User created.

· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2015-03-17 Linux 克隆虚拟机引起的“Device eth0 does not seem to be present, delaying initialization”
2014-03-17 SQL SERVER 2012 修改数据库默认位置不立即生效
2014-03-17 SQL Server Reporting Services:无法检索应用程序文件。部署中的文件已损坏
2013-03-17 MERGE INTO 性能问题疑问