Oracle OS身份验证
我在登录数据库中的一个帐户时遇到问题。情况是这样的 用户已经在Linux上登录到他的帐户环境,例如从他的个人帐户Oracle OS身份验证,oracle,authentication,Oracle,Authentication,我在登录数据库中的一个帐户时遇到问题。情况是这样的 用户已经在Linux上登录到他的帐户环境,例如从他的个人帐户 su - projectA 用户尝试使用 [projectA@myDB2]$ sqlplus / 我们得到的信息是: ORA-01017:无效的用户名/密码:拒绝登录 我在下面运行了这个命令,它缺少前缀 SQL> SHOW PARAMETER os_authent_prefix NAME TYPE
su - projectA
用户尝试使用
[projectA@myDB2]$ sqlplus /
我们得到的信息是:
ORA-01017:无效的用户名/密码:拒绝登录
我在下面运行了这个命令,它缺少前缀
SQL> SHOW PARAMETER os_authent_prefix
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string
SQL>
如何在
os\u authent\u prefix
上设置前缀?不允许为os\u authent\u prefix
设置任何值,但如果设置了前缀,则数据库帐户需要与操作系统帐户相同,即projectA
而不是OPS$projectA
如果您确实希望帐户具有OPS$
前缀,则初始化参数必须匹配。您可以在评论中将其设置为@kfinity:
alter system set OS_AUTHENT_PREFIX='OPS$' scope=spfile;
接着是分贝反弹。但由于这是默认值(我认为仍然如此!),很可能是有人故意清除了它,所以请谨慎行事
最重要的是要始终如一。如果您有其他具有OPS$
的用户帐户,那么您可能应该设置它(并且您可以检查您提到的旧数据库,查看用户和设置是否相同)。如果您没有任何其他帐户名,则需要验证是否有任何未加前缀的帐户名是通过dba\u users.authentication\u type
列在外部识别的。如果存在任何问题,则更改初始化参数将破坏这些问题
:数据库帐户是如何创建的?前缀可以为空。您可能希望
创建
或更改外部标识的用户项目
。如果你真的想设置前缀,我会做altersystemsetos\u AUTHENT\u prefix='your\u prefix\u here'scope=spfile
然后跳出数据库。@JustinC-我指的是数据库中用户的帐户,而不是数据库本身。如果数据库帐户创建为ops$projectA
,则OS\u AUTHENT\u前缀
需要是OP$s
。如果未设置前缀,则帐户名也不应具有该前缀。两者都是有效的,但你需要决定走哪条路;这可能是基于旧数据库或当前有效的其他帐户。谢谢你对我们的帮助。高级数据库确认,它是在sqlplus上运行的正确语句,正如大家在这里评论的那样。实际上,我也想运行该语句,但Java开发人员担心它可能会弄乱到外部表(文本文件)的链接。说实话,我来自Java/Python背景,但作为初级数据库承担了这项工作。所以这里有很多东西要学。再次感谢您。我不确定更改会如何影响外部表,这些表使用DB目录对象并依赖操作系统权限-DB用户的身份验证似乎不相关。我同意您的看法,但当时正在处理该框的Java开发人员不确定。这只是带前缀或不带前缀字符串的操作系统身份验证。至少我们学到了一些新东西,尤其是我,这对每个人来说都是件好事。再次感谢亚历克斯抽出时间。我真的非常感谢你的帮助和帮助。