Oracle OS身份验证身份验证

时间:2018-06-12 13:50:48

标签: oracle authentication

我在登录数据库中的某个帐户时遇到问题。情况就是这样。

用户已登录Linux上的帐户环境,例如从他的个人帐户登录

su - projectA

用户尝试使用

运行SQL * Plus
[projectA@myDB2]$ sqlplus / 

我们收到的消息是:

  

ORA-01017:用户名/密码无效:登录被拒绝

我在下面运行了这个命令,它的前缀丢失了。

SQL> SHOW PARAMETER os_authent_prefix
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      
SQL>

如何在os_authent_prefix上设置前缀?

1 个答案:

答案 0 :(得分:1)

您被允许没有为OS_AUTHENT_PREFIX设置值,但如果您这样做,则数据库帐户需要与操作系统帐户相同 - 即projectA而不是OPS$projectA }。

如果您确实希望帐户具有OPS$前缀,则初始化参数必须匹配。您可以将其设置为@kfinity在评论中说:

alter system set OS_AUTHENT_PREFIX='OPS$' scope=spfile;

然后是数据库反弹。但由于这是默认值(我认为!),很可能有人故意将其清除,所以请谨慎行事。

最重要的是要保持一致。如果您有其他用户帐户OPS$,那么您可能应该设置它(并且您可以检查您提到的旧数据库以查看用户和设置是否相同)。如果您没有其他人,则需要验证是否通过dba_users.authentication_type列在外部标识了任何未加前缀的帐户名称。如果有,那么更改初始化参数会破坏那些。

Read more in the documentation