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
#修改資料庫所在檔案夾的許可權以便新使用者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>
oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html