oracle用户所拥有的权限比较大,因此有些时候需要使用非oracle用户来完成相关数据库管理工作。尤其是多个人维护系统或数据库时,
oracle用户所拥有的权限比较大,因此有些时候需要使用非oracle用户来完成相关数据库管理工作。尤其是多个人维护系统或数据库时,有必要为其添加不同的用户,然后将这些用户添加到dba组。同时这些用户也可以根据自己的喜好来设定不同的环境变量。本文描述了在linux下创建新用户以及使用新用户来连接数据库等。
#查看当前的oracle用户id及其所属组
oracle@szdb:~> id
uid=2000(oracle) gid=1000(oinstall) groups=1000(oinstall),1002(dba)
#当前系统环境
oracle@szdb:~> cat /etc/issue
welcome to suse linux enterprise server 10 sp3 (x86_64) - kernel \r (\l).
#添加新用户robin
oracle@szdb:~> su - root
password:
szdb:~ # useradd -g oinstall -g dba robin
#查看以添加用户的信息
szdb:~ # cat /etc/passwd | grep robin
robin:x:2004:1000::/home/robin:/bin/bash
#/home/robin是用户robin的家目录,下面将其修改为/users/robin(此为个人喜欢,可以不用修改)
szdb:~ # vi /etc/passwd
#查看修改后的结果
szdb:~ # cat /etc/passwd | grep robin
robin:x:2004:1000::/users/robin:/bin/bash
#因此下面创建对应的家目录,
szdb:~ # mkdir /users/robin
szdb:~ # chown -r robin:oinstall /users/robin #修改家目录的属主,属组
#修改新用户的密码
szdb:~ # passwd robin
changing password for robin.
new password:
bad password: too simple
reenter new password:
password changed.
#切换到新用户
szdb:~ # su - robin
#查看新用户robin的相关信息
robin@szdb:~> id
uid=2004(robin) gid=1000(oinstall) groups=1000(oinstall),1002(dba)
#修改该新用户的环境变量
robin@szdb:~> vi ~/.bash_profile #可以将oracle用户的环境配置文件的内容复制过来
robin@szdb:~> source ~/.bash_profile #生效新的环境变量
robin@szdb:~> sid
ora_crs_home=/opt/oracle/product/10gr2/crs
oracle_path=.:/users/robin/dba_scripts/custom/sql:/users/robin/dba_scripts/common/sql
ora_asm_home=/opt/oracle/product/10gr2/asm
oracle_sid=cnmmbo
oracle_base=/users/oracle
oracle_home=/users/oracle/orahome10g
robin@szdb:~> sql
sql*plus: release 10.2.0.3.0 - production on thu nov 22 17:31:50 2012
copyright (c) 1982, 2006, oracle. all rights reserved.
error:
ora-01034: oracle not available
ora-27123: unable to attach to shared memory segment
linux-x86_64 error: 13: permission denied #提示许可拒绝
enter user-name: goex_admin
enter password:
error:
ora-01034: oracle not available
ora-27123: unable to attach to shared memory segment
linux-x86_64 error: 13: permission denied
enter user-name:
robin@szdb:~> ps -ef | grep pmon |grep sybo2sz
oracle 2350 1 0 oct25 ? 00:00:00 ora_pmon_sybo2sz
robin@szdb:~> export oracle_sid=sybo2sz
robin@szdb:~> sqlplus / as sysdba
sql*plus: release 10.2.0.3.0 - production on thu nov 22 17:34:52 2012
copyright (c) 1982, 2006, oracle. all rights reserved.
connected to an idle instance.
idle> exit
disconnected
robin@szdb:~> oerr ora 27123
27123, 00000, unable to attach to shared memory segment
// *cause: shmat() call failed
// *action: check permissions on segment, contact oracle support
#查看$oracle_home/bin/oracle的权限,此处为751
robin@szdb:~> cd $oracle_home/bin
robin@szdb:/users/oracle/orahome10g/bin> ls -hltr oracle
-rwxr-x--x 1 oracle oinstall 99m 2011-05-13 14:26 oracle
#使用oracle 用户登录
robin@szdb:~> su - oracle
password:
oracle@szdb:~> cd $oracle_home/bin
#修改$oracle_home/bin/oracle下的权限
oracle@szdb:~/orahome10g/bin> chmod 6751 oracle #这个地方是关键,修改这个权限以便其他用户能够从同一主机访问oracle 环境
oracle@szdb:~/orahome10g/bin> ls -hltr oracle
-rwsr-s--x 1 oracle oinstall 99m 2011-05-13 14:26 oracle
#author : robinson
#blog :
#修改数据库所在文件夹的权限以便新用户robin有权限操作该路径下的所有文件
oracle@szdb:~/orahome10g/bin> chmod -r 775 /u02/database
oracle@szdb:~/orahome10g/bin> su - robin
password:
robin@szdb:~> sql
sql*plus: release 10.2.0.3.0 - production on thu nov 22 17:42:50 2012
copyright (c) 1982, 2006, oracle. all rights reserved.
error accessing product_user_profile
warning: product user profile information not loaded!
you may need to run pupbld.sql as system
connected to:
oracle database 10g release 10.2.0.3.0 - 64bit production
goex_admin@cnmmbo>
,