Linux下非oracle用户如何使用系统认证方式登陆数据

Linux系统中,DBA一般使用oracle用户登陆/访问Linux操作系统,然后使用sqlplus命令登陆数据库进行一些维护操作,如果由于某些特殊原因,系统管理员创建了一个db_support用户,如果使用dba_support这个普通账号登陆了Linux操作系统,如何使用sqlplus访问数据库呢?

首先,我们必须在当前用户的主目录下设置环境变量,在~/.bash_profile中加入下面环境变量,例如:

export ORACLE_SID=gsp
export ORACLE_BASE=/opt/oracle19c
export ORACLE_HOME=/opt/oracle19c/product/19.3.0/db_1
PATH=/usr/sbin:$PATHexport PATH
PATH=$ORACLE_HOME/bin:$PATHexport PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
export PATH

执行source ~/.bash_profile使之生效。然后我们可以使用账号密码登陆数据库。

$ sqlplus sys/****** as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 18 16:19:16 2023
Version 19.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL>

在oracle用户下可以使用下面方式(系统认证登陆)登陆数据库,但是,在db_support用户下,使用下面方式登陆数据库会报ORA-01017错误

$sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Aug 9 10:25:39 2023
Version 19.16.0.0.0

Copyright (c) 19822022, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied

那么怎么解决这个问题呢?其实导致这个错误的原因在于这个用户没有加入dba用户组。检查这两个用户所属的用户组,发现dba_support账号不在dba用户组下面,如下所示:

[oracle@db_01 ~]$ id 
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)

[dba_support@db_01 ~]$ id dba_support
uid=54322(dba_support) gid=54321(oinstall) groups=54321(oinstall)

切换到root用户下,将dba_support加入dba用户组后,这个问题解决了

#usermod -G dba dba_support


原文始发于微信公众号(DBA闲思杂想录):Linux下非oracle用户如何使用系统认证方式登陆数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/227933.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!