首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >ORA-00988: missing or invalid password(s)

ORA-00988: missing or invalid password(s)

作者头像
全栈程序员站长
发布2022-09-06 09:51:36
发布2022-09-06 09:51:36
1.1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

创建账号或修改账号密码时有可能会遇到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:密码是关键字,但是没有用双引号。

代码语言:javascript
复制
SQL> create user test identified by table;
代码语言:javascript
复制
create user test identified by table
代码语言:javascript
复制
                               *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00988: missing or invalid password(s)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by 'table';
代码语言:javascript
复制
create user test identified by 'table'
代码语言:javascript
复制
                               *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00988: missing or invalid password(s)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by "table";
代码语言:javascript
复制
代码语言:javascript
复制
User created.

2:密码以数字开头,但是没有使用双引号

代码语言:javascript
复制
SQL> create user test identified by 123456;
代码语言:javascript
复制
create user test identified by 123456
代码语言:javascript
复制
                               *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00988: missing or invalid password(s)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by '123456';
代码语言:javascript
复制
create user test identified by '123456'
代码语言:javascript
复制
                               *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00988: missing or invalid password(s)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by "123456";
代码语言:javascript
复制
代码语言:javascript
复制
User created.

3:密码包含特殊字符,并且没有用双引号。

代码语言:javascript
复制
SQL> drop user test;
代码语言:javascript
复制
代码语言:javascript
复制
User dropped.
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by k*123$6;
代码语言:javascript
复制
create user test identified by k*123$6
代码语言:javascript
复制
                                *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00922: missing or invalid option
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by 'k*123$6';
代码语言:javascript
复制
create user test identified by 'k*123$6'
代码语言:javascript
复制
                               *
代码语言:javascript
复制
ERROR at line 1:
代码语言:javascript
复制
ORA-00988: missing or invalid password(s)
代码语言:javascript
复制
代码语言:javascript
复制
代码语言:javascript
复制
SQL> create user test identified by "k*123$6";
代码语言:javascript
复制
代码语言:javascript
复制
User created.

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154566.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档