Redhat Linux 6.4下Oracle 10g装置装备手册
1、装置预备
1.1 RedHat Linux Server 6.4装置DVD (32位), 装置时挑选“桌面”。
1.2 Oracle 10g Linux装置文件(10201_database_linux32.zip)
2、用root用户操作:
1、加载DVD到yum库中
mkdir /mnt/iso
mount /dev/dvd /mnt/iso
修正/etc/yum.repos.d/ rhel-source.repo
在最终增加:
[rhel_iso]
name=local iso
baseurl=file:///mnt/iso/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2、仿制zysong.ttf 到fonts中
mount -t cifs -o username=administrator,password=admin //200.120.75.24/share/ /windows/
mkdir -p /usr/share/fonts/zh_CN/TrueType
cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/
3、衔接/usr/lib下的std12bet文件
ln -s libstd12bet.so.6.0.13 libstd12bet.so.5
4、修正Linux的发行符号
1)、如在redhat5上装置oracle,需求将文件 '/etc/redhat-release'的内容由:
vi /etc/redhat-release
Red Hat Enterprise Linux Server release 5 (Tikanga)
修正为:
Red Hat Enterprise Linux Server release 4 (Tikanga)
2)、修正增强的Linux安全设置:vi /etc/selinux/config
SELINUX=disabled
5、装置libXp和gcc包
yum install libXp
yum install gcc
6、装备内核参数
1.1 修正/etc/sysctl.conf文件,增加或修正如下的行:
自己实践装备环境中,赤色部分是需求修正行,蓝色部分为增加行。
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 2147483648
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
1.2 检查当时内核参数的值
/sbin/sysctl –p
注:(一般为内存的0.7倍)OLTP体系SGA+PGA<(Total Memory)*0.8
SAG<(Total Memory)*0.8*0.8
7、修正/etc/hosts
增加下面内容,假如没有oracle 的监听器无法发动
127.0.0.1 localhost
10.130.166.202 henry
8、进步在linux体系上运转软件的功能,
有必要对oracle用户设置下列shell 约束。
1.3 翻开文件数和进程数的约束
参加下面的行到文件/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
1.4 参加下面的行到文件/etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
4、创立oracle用户
以下操作需求运用root账户创立。
1.5 创立oinstall用户组
groupadd–g 701oinstall
1.6 创立dba用户组
groupadd–g 702 dba
1.7 创立oracle用户
useradd –g oinstall –G dba oracle
1.8 初始化oracle用户暗码
passwd oracle
5、创立Oracle装置目录
本示例中,Oracle装置途径为:/opt/oracle/product/10.2.0/db_1
1.9 创立oracle装置目录
mkdir –p /opt/oracle/product/10.2.0
1.10 修正目录所属用户为oracle用户
chown –R oracle:oinstall /oracle
1.11 修正目录权限
chmod –R 775 /oracle或许
chmod -R ug=rwx,o=rx /oracle
echo 504> /proc/sys/vm/hugetlb_shm_group
9、oracle 中文乱码的处理
root用户下修正:
vi etc/sysconfig/i18n
LANG=”en_US.UTF-8”
3、运用oracle用户设置
1、设置oracle用户环境变量
留意以下指令为,必需以oracle用户身分登录:
su – oracle
1.12 修正/home/oracle/.bash_profile文件,增加以下行
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export ORACLE_SID=hydb
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export JAVA_FONTS=/usr/share/fonts/zh_CN/TrueType
umask 022
unset USERNAME
#alias sqlplus='rlwrapsqlplus'
#alias rman='rlwraprman'
#alias ggsci='rlwrapggsci'
注:在export PATH=$ORACLE_HOME/bin:$PATH中,由于分隔时运用了‘;’而不是‘:’,引起了‘-bash: vim: command not found’,过错,一切的指令都无法运用,经过重启服务器,root账号能够运用这些指令了,可是Oralce用户仍无法运用,经查是由于‘;’引起的
1.13 检查设置的环境变量
echo $ORACLE_HOME
echo $ORACLE_BASE
echo $ORACLE_SID
1.14 使环境变量收效
[oracle@~]$ . .bash_profile
4、硬件要求
1.1 物理内存至少2G
检查指令:grepMemTotal /proc/meminfo
1.2 交流分区:至少1G,最好是物理内存的2倍
检查指令:grepSwapTotal /proc/meminfo
1.3 硬盘闲暇区至少4G
检查指令:df –h
5、运用oracle用户装置oracle
./runInstaller
装置时,最好挑选高档装置形式“Advanced Installation”,这样能够设置数据库字符集。
运用Root履行两个脚本:
/opt/oracle/oraInventory/orainstRoot.sh
和
/opt/oracle/product/10.2.0/db_1/root.sh
装置完成后:
1、运用oracle用户,运用dbstart无法发动数据库的问题
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
1) 检查dbstart文件
vi $ORACLE_HOME/bin/dbstart
检查ORACLE_HOME_LISTNER项的途径,将其改为$ORACLE_HOME,如下:
2) 进行完上述操作后,从头履行dbstart时,数据库仍不能发动。此刻,登陆sqlplus,运用指令startup mount;能够登陆。一起伴有,数据库起来后,重启机器后,履行dbstart又不能发动数据库的状况。
处理办法:检查 /etc/oratab文件,按下面办法操作。
此处还有一种修正办法:
#注释掉上面的行,增加下面行
$ORACLE_SID:$ORACLE_HOME:Y
3) 假如履行dbstart仍不能发动,检查dbstart文件中的oratab项装备是否和下图中的共同,假如不共同修正。
2、常用指令:
监听程序:
[oracle@app oracle]$ lsnrctl start --发动监听程序
lsnrctl stop --中止监听程序
lsnrctl status -检查监听状况
netca 监听程序制造(GUI)oracle net configuration assistant
dbca database configuration assistant
emca 创立,修正,重建或许删去dbcontrol的装备
trcasst Trace Assistant
数据库发动:
[oracle@app oracle]$ sqlplus /nolog
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate (封闭数据库)
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup; (发动数据库)
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
假如履行startup发动数据库失利,陈述Can’t find init file …initoradb.ora的过错,需求仿制一个初始化文件,履行如下指令:
$cd /opt/oracle/admin/hydb/pfile/
$cp init.ora.* /opt/oracle/product/10.2.0/dbs/initoradb.ora
从头履行startup,顺畅发动。
或许:
sqlpl / as sysdba;
startup
发动em:
emctl start dbconsole
发动isqlplus
isqlplusctl start
select status from v$instance;
select open_mode from v$database;
http://192.168.1.9:1158/em
http://192.168.1.9:5560/isqlplus
防火墙设置
留意,装置完成后有必要将防火墙的几个端口翻开:1521端口,1158(em) 5560(isqlplus)
service iptables status 检查状况
完全封闭防火墙: service iptables stop (root)
敞开 service iptables start (root)
翻开某个端口: ??
/etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Mon Oct 7 08:32:32 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1084:263585]
-A INPUT -p tcp -m tcp --dport 5560 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 1521 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1158 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Oct 7 08:32:32 2013
一个示例文件(具体阐明):
IPTables 装备文件
RH 的 /etc/sysconfig/iptables 文件,为 iptables-save 生成的格局。
*nat 开端处理nat表
:PREROUTING ACCEPT [5278:800028] PREROUTING 链的默许策略为ACCEPT(承受/答应),即 -tnat -P PREROUTING ACCEPT。方括号内是本链引证计数,即经过本链的有5278个包,共800028字节。
:POSTROUTING ACCEPT [5278:800028] POSTROUTING 链的默许策略为ACCEPT,即 -t nat -P POSTROUTING ACCEPT
:OUTPUT ACCEPT [5278:800028] OUTPUT 链的默许策略为承受,即 -t nat -P OUTPUT ACCEPT
QUOTE:
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth1 -j SNAT --to-source 61.133.202.70
增加一SNAT规矩,从eth1 外发的、源地址为192.168.0.0/24网络的数据包将被修正为如同从 61.133.202.70 宣布。
COMMIT nat表处理完毕,以下部分不再归于 nat 表
*filter 开端处理 filter 表
:INPUT ACCEPT [5278:800028]
:FORWARD ACCEPT [5278:800028]
:OUTPUT ACCEPT [5278:800028]
:RH-Firewall-1-INPUT [5278:800028] 界说一个自界说链,名称为RH-Firewall-1-INPUT
-A INPUT -j RH-Firewall-1-INPUT一切输入数据包都转到 RH-Firewall-1-INPUT 链处理
-A FORWARD -j RH-Firewall-1-INPUT一切转发数据包都转到 RH-Firewall-1-INPUT 链处理
-A RH-Firewall-1-INPUT -i lo -j ACCEPT在 RH-Firewall-1-INPUT 链中增加规矩,承受由本地环回接口进入的一切数据包
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT 承受由网络接口 eth0 进入的一切数据包
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT 承受由网络接口 eth1 进入的一切数据包
-A RH-Firewall-1-INPUT -p icmp -m icmp any -j ACCEPT 承受一切 ICMP 协议的数据包
-A RH-Firewall-1-INPUT -p esp -j ACCEPT 承受一切 IPSec ESP 协议的数据包
-A RH-Firewall-1-INPUT -p ah -j ACCEPT 承受一切 IPSec AH 协议的数据包
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 承受一切状况符号为 RELATED 或 ESTABLISHED 的数据包
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 承受一切方针端口为 80 的 TCP 新衔接数据包
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 承受一切方针端口为 21 的 TCP 新衔接数据包
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 承受一切方针端口为 22 的 TCP 新衔接数据包
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 其他数据包一概回绝,并以 icmp-host-prohibited 数据包回应
COMMIT filter表处理完毕
-A INPUT -s 219.150.13.170 -j DROP
-A INPUT -s 220.115.251.1 -j DROP
-A INPUT -s 211.115.68.55 -j DROP 仍是在 filter 表里处理,丢掉源地址为219.150.13.170、220.115.251.1、211.115.68.55 的数据包。
这三行是手艺加上去的了,不是 iptables-save 生成的。
6、装备oracle为自发动服务
以下操作运用root用户,
1.15 vi /etc/rc.d/init.d/oracle,仿制以下内容:
#!/bin/bash
# chkconfig: 2345 66 36
# /etc/rc.d/init.d/oracle
# description: starts the oracle database
#
ORA_HOME=/oracle/product/10.2/db_1
ORA_OWNER=oracle
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Restarting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle { start | stop | restart }"
exit 1
esac
exit 0
1.16 修正/etc/rc.d/init.d/oracle履行权限
chmod 755 /etc/rc.d/init.d/oracle
1.17 增加oracle服务
chkconfig --add oracle
1.18 设置oracle服务自发动
chkconfig oracle on
1.19 发动、封闭、重启oracle指令
发动oracle数据库:
service oracle start
封闭oracle数据库:
service oracle stop
重启oracle数据库
service oracle restart
附录1:装置进程中遇到的问题及处理办法
1. xhost:unable to open display
处理办法:
1)检查/etc/inittab文件里,把init3或许其他值改成init5
2)reboot system,用root用户经过图形界面进入体系,在终端里履行xhost +,(一般在这里都xhost会履行成功,假如无法履行成功,那你图形必定有问题!)
2. 履行runInstaller时报错:Exception in thread "main" java.lang.UnsatisfiedLinkError:/tmp/OraInstall2007-12-21_10-40-21PM/jre/lib/i386/libawt.so:libXp.so.6: cannot open shared object file: No such file or directory
处理办法:装置libXp.rpm。这个文件能够在linux装置文件中找到。假如是运用iso文件装置的,能够先挂载光驱:
mount /dev/cdrom /mnt
3. ORA-01031: insufficient privileges问题
先照着问题3的办法检查一遍。
4. 在linux下挂载iso的办法
mount –o loop linux.iso /mnt/cd1
5. 盯梢指令的履行进程
strace -v ps -ef 2> ps.txt 写入ps.txt文件
7、Host.conf文件装备过错
过错代码如下:/etc/host.conf:line3:bad command '127.0.0.1 localhost'
原因是: /etc/host.conf中多出来一行内容引起的:127.0.0.1 localhost
8、startup 敞开犯错
9、履行IMPDP时,中止不动,封闭之后从头启Impdp job时,呈现下面的过错
[oraevent@henry ~]$ impdp event ATTACH=event.SYS_IMPORT_SCHEMA_01
Import: Release 10.2.0.4.0 - 64bit Production on Sunday, 25 September, 2011 10:07:05
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Password:
UDI-00008: operation generated ORACLE error 257
ORA-00257: archiver error. Connect internal only, until freed.
1) 检查Archive log 所在方位
SQL>Show parameter log_archeive_dest
2) 一般VALUE为空时,能够用archive log list;检查一下归档目录和log sequence
SQL>archive log list;
3) 检查flash recovery area 的运用状况,能够看见archivelog现已很大了,
SQL> select * from v$flash_recovery_area_usage;
4) 核算flash recovery area 现已占用的空间
Select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
5) 找到Recovery 目录,show parameter recover
SQL> show parameter recover;
6) 上述成果告知咱们,归档方位默许是在flash_recovery_area下
搬运或铲除对应的归档日志(留意:再删去归档日之后,有必要用RMAN保护操控文件,不然空间显现依然不开释)
7) 检查一些无用的archivelog
RMAN> crosscheck archivelog all;
8) 删去过期的归档
RMAN> delete expired archivelog all;
Delete archivelog until time ‘sysdate-1’; 删去截止前一天的一切archivelog
9) 修正拟定的归档文件途径或许修正flash_recovery_area的巨细
SQL> alter system set log_archive_dest=’/oracle/oraarch_log’ scope=both;
SQL> alter system set db_recovery_file_dest_size=3G scope=both;
10、发动Data Pump Jobs
---查询正在运转的Data Pump Jobs
SQL> select * from v$dba_datapump_jobs;
---发动Jobs
$ impdp event ATTACH=event.SYS_IMPORT_SCHEMA_01
----检查Job运转状况:
Impdp> status
---中止Job
Impdp>stop_job
---发动jobs
Impdp>start_job
---检查对应的SESSION
SQL> select sid,serial# from v$session s, dba_datapump_sessions d where s.saddr=d.saddr;
Select * from v$dba_datapump_jobs; --查询正在运转的Data Pump Jobs
Import>stop_job
Import>start_job
TMS.INTERFACE_TO_OMS_PG.RE_SENDLOADING_STATUS;
http://openwares.net/database/debian_amd64_install_10g_r2_database.html
登录到长途体系
$ssh -XY oracle@remotehost
履行oracle装置程序
$/path/to/client/runInstaller -ignoreSysPrereqs
由于oracle 10g认证的linux体系只要redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 和 asianux-2这几个,所以在其他linux发行版上装置时需求指定指令行参数-ignoreSysPrereqs,不然会提示:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
然后退出装置
之后在本地机器能够看到OUI(Oracle Universal Installer)界面,后边的装置依据提示来就能够了。装置目录修正为/u01/app/oracle/product/10.2.0/db_1
装置进展大约到65%时会有过错提示:
Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.
这是oracle装置程序的一个bug,能够疏忽此过错持续装置,对体系没什么影响。一起oraInventory/logs/目录下的装置日志文件里边会有如下相似过错提示:
INFO: /usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmccol.a(nmccole.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbuft.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/ap
INFO: p/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufw.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufu.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(snmcbufm.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/
INFO: libnmcbuf.a(nmcbuff.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(nmadbg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(snmadbg.o)' is incompatible with i386:x86-64 output
collect2: ld returned 1 exit status
INFO: make[1]: Leaving directory `/u01/app/oracle/product/10.2.0/db_1/sysman/lib'
INFO: make[1]: *** [/u01/app/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1
make: *** [nmccollector] Error 2
这是由于oracle 10.2.0.1装置包为这几个i386方针文件供给了过错版其他x86_64链接库,之后装置patchser 10.2.0.4时relink nmccollector会成功。
关于此过错更具体的信息请参阅Metalink NOTE 957982.1和Bug 8993720
在SYSTEM用户下
创立用户:
create user [username] identified by [password] default tablespace [space_name] temporary tablespace [temp_name];
Create User JFBQ identified by JFBQ default tablespace users;
检查用户运用的表空间sql句子如下:
Select username,default_tablespace from dba_users;
删去用户:
drop user [username] cascade;
删去用户的一起还会删去该用户下的一切的表、索引等。但不确保开释空间。
经过人物授权
grant connect to JFBQ;
grant resource to JFBQ;
grant dba to JFBQ;
oracle三种规范的人物:CONNECT、RESOURCE和DBA。
1. CONNECT Role(衔接人物)
暂时用户,特别是那些不需求建表的用户,一般只赋予他们CONNECTrole。CONNECT是运用Oracle的简略权限,这种权限只要在对其他用户的表有拜访权时,包含select、insert、update和delete等,才会变得有意义。具有 CONNECT role的用户还能够创立表、视图、序列(sequence)、簇(cluster)、近义词(synonym )、会话(session)和与其他数据库的链(link)。
2. RESOURCE Role(资源人物)
RESOURCE供给给用户其他的权限以创立他们自己的表、序列、进程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3. DBA Role(数据库办理员人物)
DBA role具有一切的体系权限----包含无约束的空间限额和给其他用户颁发各种权限的才干。SYSTEM由DBA用户具有。下面介绍一些DBA常常运用的典型权限。
(1)grant(授权)指令
下面临方才创立的用户user01授权,指令如下:
grant connect, resource to user01;
(2)revoke(吊销)权限
已颁发的权限能够吊销。例如吊销(1)中的授权,指令如下:
revoke connect, resource from user01;
一个具有DBA人物的用户能够吊销任何其他用户乃至其他DBA的CONNECT、RESOURCE 和DBA的其他权限。当然,这样是很风险的,因而,除非真实需求,DBA权限不该随意颁发那些不是很重要的一般用户。
吊销一个用户的一切权限,并不意味着从Oracle中删去了这个用户, 也不会损坏用户创立的任何表;仅仅简略制止其对这些表的拜访。其他要拜访这些表的用户能够象曾经那样地拜访这些表。
在一些状况下即便给新建的用户DBA的权限,可是它仍是不能跨用户进行创立表和视图,这个时分需求直接授权。
直接授权
grant Create any View to JFBQ;
grant Create any table to JFBQ;
2:发动数据实例 oradim -startup -sid dataname(实例名)
2.运用sys最高用户登录
sqlplus sys as sysdba (sqlplus username/password@connection_String)
create user lisi identified by lisi;//创立一个用户lisi暗码为李四
grant session to lisi;//创立李四拜访数据库权限
grant unlimited tablespace to lisi;//让李四能无限运用表空间,这时分李四就能创立表了(运用的是默许sys的表空间)
吊销lisi权限
revoke session from lisi;
revoke unlimited tablespace from lisi;
3.目标权限 王五能拜访李四表
创立用户王五后,王五新建表tab
grant select on tab to lisi;
grant all on tab to lisi;
5.吊销权限
revoke select on tab from lisi;
revoke all on tab from lisi;
6.把权限颁发悉数用户
grant create session to public;
7.查询自己权限
select * from user_sys_privs;