原文:https://blog.csdn.net/qq_41840843/article/details/131198718?spm=1001.2014.3001.5501
🔻 一、安装前规划
规划项 | (本环境)描述 |
---|---|
操作系统版本 | Red Hat Enterprise Linux Server release 7.9 (Maipo) |
主机名 | db-oracle |
数据库版本 | Oracle 11g |
Ip规划 | 192.168.181.71 |
服务器空间要求 | 根据实际要求 |
数据库名/实例名 | orcl |
数据库块大小 | oracle建库一般设置数据库块大小8192K |
数据库使用字符集 | 这里用AL32UTF8 字符集 |
UFT8与GBK的区别:
区别主要是他们占用的字节不同(汉字),UTF8占用三个字节,而GBK占用两个字节,如varchar2(30)类型
如果是utf8,只能输入10汉字;
而gbk则可以输入15个汉字。
一般生产环境服务器空间规划要求(可根据业务量自行调整)
/ ------100G
数据库安装目录(如:/u01) ------100G
数据存储目录(如:/oradata) ------500G
归档目录(如:/archive) ------500G(一般和数据目录一致)
备份目录(如:/backup) ----------1.5T(一般是数据目录3倍左右)
🔻 二、安装前准备一(系统参数修改)
⛳ 2.1 内核版本、系统版本查看
# 64位
[root@db-oracle ~]# uname -m
x86_64# 查看内核版本
[root@db-oracle ~]# cat /proc/version
Linux version 3.10.0-1160.el7.x86_64 (mockbuild@x86-vm-26.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 18 14:50:17 EDT 2020
[root@db-oracle ~]#[root@db-oracle ~]# uname -a
Linux db-oracle 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@db-oracle ~]## 查看系统版本
[root@db-oracle ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@localhost ~]#
⛳ 2.2 修改主机名-重启生效
[root@db-oracle ~]# vi /etc/hosts
[root@db-oracle ~]# vi /etc/hostname
⛳ 2.3 关闭selinux
关闭selinux可以提高系统的性能,因为 selinux会对系统进行安全检查,这会消耗一定的系统资源。
[root@db-oracle ~]# vi /etc/selinux/config
# 将
SELINUX= enforcing
修改 为:SELINUX=disabled
防火墙有关命令
-- 关闭防火墙
[root@db-oracle ~]# systemctl stop firewalld-- 开启防火墙
[root@db-oracle ~]# systemctl start firewalld-- 重启防火墙
[root@db-oracle ~]# systemctl restart firewalld-- 防火墙状态查看
[root@db-oracle ~]# systemctl status firewalld-- 禁止开机启动
[root@db-oracle ~]# systemctl disable firewalld-- 设置开机启动
[root@db-oracle ~]# systemctl enable firewalld
⛳ 2.4 防火墙设置1521端口开放
-- 设置1521端口开放
[root@db-oracle ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
success
[root@db-oracle ~]#-- 重启防火墙,查看开放端口列表
[root@db-oracle ~]# firewall-cmd --list-ports
1521/tcp
[root@db-oracle ~]#
⛳ 2.5 系统相关配置检查
-- 查看磁盘占用的空间
[root@db-oracle ~]# df -h-- 查看内存总量
[root@db-oracle ~]# grep MemTotal /proc/meminfo-- 查看空闲内存量
[root@db-oracle ~]# grep MemFree /proc/meminfo
安装oracle 11g对于共享内存(/dev/shm)要求/dev/shm空间不能小于分配给oracle使用内存的大小
。
2.5.1 🍁 修改/dev/shm 大小(/dev/shm空间不能小于分配给oracle使用内存的大小)
[root@db-oracle ~]# vi /etc/fstab###文本末添加内容
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0
-- 重新挂载/dev/shm
[root@db-oracle ~]# mount -o remount /dev/shm
2.5.2 🍁 /tmp(临时文件存储空间) >1G
[root@db-oracle ~]# df -h /tmp
2.5.3 🍁 /u01(软件安装目录) >2.5G
[root@db-oracle ~]# df -h /u01
2.5.4 🍁 内核需求
安装数据库11G操作系统 | 内核需求 |
---|---|
On Oracle Linux 4 and Red Hat Enterprise Linux 4 | 2.6.9 or later |
On Oracle Linux 5 Update 5 | 2.6.32-100.0.19 or later |
On Oracle Linux 5 Update 2 | 2.6.18 or later (with Red Hat Compatible Kernel) |
On Oracle Linux 6 | 2.6.32-100.28.5.el6.x86_64 or later |
On Oracle Linux 6 | 2.6.32-71.el6.x86_64 or later (with Red Hat Compatible Kernel) |
Oracle 11gR2要求OS至少为RHEL4.7,内核为Kernel 2.6.9
。
⛳ 2.6 系统光盘镜像文件挂载—配置本地yum源
一般生产环境无法访问外网,在内网环境可以使用系统ISO镜像文件作为本地yum源,在服务器上挂载DVD的 iso 文件。
2.6.1 🍁 上传iso镜像文件并挂载到 /mnt/dvd/ 下
-- 创建镜像文件挂载目录/mnt/dvd
[root@db-oracle ~]# mkdir /mnt/dvd
###
上传rhel-server-7.9-x86_64-dvd.iso
文件到/usr/local/src
下
-- 挂载iso文件(只能读,不可写)
[root@db-oracle src]# mount -t iso9660 -o loop /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd-- 重新以可读可写的方式挂载
[root@db-oracle src]# mount -o remount,rw /
-- 设置开机自动挂载本地镜像文件
[root@db-oracle src]# vi /etc/fstab# 文末添加内容
/usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd iso9660 loop 0 0
# df -h 查看挂载情况
[root@db-oracle ~]# df -h
2.6.2 🍁 备份yum源文件
[root@db-oracle ~]# cd /etc/yum.repos.d/
[root@db-oracle yum.repos.d]# more redhat.repo
-- 备份yum源文件
[root@db-oracle yum.repos.d]# cp redhat.repo redhat.repo-bak
2.6.3🍁 本地yum源配置
[root@db-oracle ~]# cd /etc/yum.repos.d/
[root@db-oracle yum.repos.d]# vi redhat.repo
# 标识符
[redhat]# 名称
name=Red Hat Enterprise Linux 7.9 # 本地yum源地址
baseurl=file:///mnt/dvd# 下载的rpm不进行校验
gpgcheck=0#启用状态
enabled=1
2.6.4🍁 验证本地yum源配置
-- 清除yum缓存
[root@db-oracle ~]# yum clean all
-- 缓存本地yum源中的软件包信息
[root@db-oracle ~]# yum makecache
-- 查询仓库中的所有软件包
[root@db-oracle ~]# yum list
⛳ 2.7 Orange11g有关依赖包检查及安装
-- Orange11g有关依赖包检查
rpm -q binutils \
compat-libcap1 \
compat-libstdc++ \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXi \
libXtst \
make \
sysstat \
unixODBC \
unixODBC-devel \ | grep "not installed"
----提前安装有关依赖
-- 安装有关依赖
yum install gcc* binutils* compat* glibc* ksh* libgcc* libstdc* libaio* make* sysstat* unixODBC* -y
分享 一个rpm 下载的网站,compat-libstdc++ (这里可以搜索下载,平时有缺少的依赖,都可在这搜索)
-- 手动上传安装compat-libstdc++
[root@db-oracle ~]# rpm -ivh compat-libstdc+±8-3.3.4.2.x86_64.rpm --force --nodeps
warning: compat-libstdc+±8-3.3.4.2.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 4f2a6fd2: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:compat-libstdc+±8-3.3.4.2 ################################# [100%]
[root@db-oracle ~]#
----有关依赖包再次检查
⛳ 2.8 修改资源限制参数并使其生效
对oracle用户做资源的限制,主要是出于性能上的考虑,防止oracle用户过渡消耗有限资源,使系统变得臃肿缓慢。
# 步骤一、备份limits.conf 文件,limits.conf只针对于单个会话。
[root@db-oracle ~]# cp /etc/security/limits.conf /etc/security/limits.conf-bak[root@db-oracle ~]# vi /etc/security/limits.conf###文末添加内容
oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768oracle soft memlock 3145728oracle hard memlock 3145728
注意:资源限制参数分为软限制和硬限制
nproc ----进程最大数目
nofile ----进程打开文件的最大数目
stack ----最大栈大小
memlock ----最大锁定内存地址空间(要比实际内存小,如内存4G,设置3G最大锁定内存地址空间,则为3x1024x1024=3145728)
--------其他配置项------------------------
core ----限制内核文件的大小
data ----最大数据大小
fsize ----最大文件大小
rss ---- 最大持久设置大小
cpu---- 以分钟为单位的最多 CPU 时间
as ---- 地址空间限制
maxlogins---- 此用户允许登录的最大数目
步骤二、使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。vi /etc/pam.d/login 文件,文末添加内容:
session required /lib/security/pam_limits.so
⛳ 2.9 系统内核参数修改
-- 步骤一、备份编辑内核参数文件sysctl.conf
[root@db-oracle ~]# cp /etc/sysctl.conf /etc/sysctl.conf-bak
[root@db-oracle ~]# vi /etc/sysctl.conf###文末添加内容
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmmni = 4096kernel.shmmax = 2576980377kernel.shmall = 629145vm.nr_hugepages = 1457kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576
系统内核参数详解,关注该四个:
1、kernel.shmmax ----单个共享内存段的最大值(如系统内存4G,则oracle 内存为0.8x4G=3.2G(SGA=0.8x3.2G+PGA=0.2x3.2G)) >= SGA的值,则最终值应该>=0.8x3.2Gx1024x1024x1024
2、kernel.shmall -----控制共享内存页数(kernel.shmmax/PAGESIZE)
-- PAGESIZE—页数查看
[root@db-oracle ~]# getconf PAGESIZE
4096
[root@db-oracle ~]#
3、kernel.shmmni -----共享内存段的最大数量 = 4096(和每页大小一致即可)
4、vm.nr_hugepages -----大页,直接分配并保留对应大小的内存区域(SGA/2M稍微大一点,加200M左右),如(0.8x3.2Gx1024x1024x1024)/(1024x1024)
-- 步骤二、使内核参数文件sysctl.conf生效,重新加载配置文件
[root@db-oracle ~]# sysctl -p
⛳ 2.10 用户创建进程数的限制
nproc是操作系统级别对每个用户创建进程数的限制.
-- 设置每个用户创建进程最大数为16384
[root@db-oracle ~]# echo "* - nproc 16384 ">/etc/security/limits.d/90-nproc.conf
[root@db-oracle ~]# cat /etc/security/limits.d/90-nproc.conf
* - nproc 16384
[root@db-oracle ~]#
拓展:
1、查看所有用户创建的进程数
,使用命令:
[root@db-oracle ~]# ps h -Led -o user | sort | uniq -c | sort -n2、
查看某个用户创建的进程数
,使用命令:
[root@db-oracle ~]# ps -o nlwp,pid,lwp,args -u root | sort -n
🔻 三、安装前准备(创建用户、用户组以及安装目录)
注:在安装任何软件设置的用户和用户密码都要做好记录
⛳ 3.1 创建用户组
-- 创建oinstall用户组—控制软件安装,补丁安装
[root@db-oracle ~]# /usr/sbin/groupadd -g 5001 oinstall###创建dba用户组—控制数据库创建、管理
[root@db-oracle ~]# /usr/sbin/groupadd -g 5002 dba###创建oper用户组—数据库操作员
[root@db-oracle ~]# /usr/sbin/groupadd -g 5003 oper
[root@db-oracle ~]#
拓展:删除用户组
[root@db-oracle ~]# groupadd test
[root@db-oracle ~]# useradd -g test -G dba test
[root@db-oracle ~]# groupdel test
groupdel: cannot remove the primary group of user ‘test’
[root@db-oracle ~]#
如果组里面有用户需要先删除用户或移动用户,才能删除组-- 删除用户
[root@db-oracle ~]# userdel test
⛳ 3.2 创建oracle用户和设置密码
-- 创建oracle用户—编号为6001,默认组为oinstall,并添加到dba,oper组,主要是oinstall组发生作用
[root@db-oracle ~]# useradd -u 6001 -g oinstall -G dba,oper oracle-- passwd oracle ----设置oracle用户密码(Zyl@0411)[root@db-oracle ~]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.-- 检查创建的oracle用户
[root@db-oracle ~]# su - oracle
[oracle@db-oracle ~]$ id
uid=6001(oracle) gid=5001(oinstall) groups=5001(oinstall),5002(dba),5003(oper)
[oracle@db-oracle ~]$
⛳ 3.3 创建安装目录
-- 建oracle安装目录
[root@db-oracle ~]# mkdir -p /u01/app/oracle-- 更改/u01目录用户组
[root@db-oracle ~]# chown -R oracle:oinstall /u01-- 更改oracle目录权限
[root@db-oracle ~]# chmod -R 775 /u01/app/oracle
⛳ 3.4 设置oracle用户环境变量
-- 切换至oracle用户,编辑 .bash_profile 文件
[oracle@db-oracle ~]$ vi .bash_profile####添加内容
# use for oracleunset TNS_ADMIN
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1export ORACLE_SID=orclexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#防止Oracle安装界面乱码,先把语言环境改为英文
export LANG=en_USif [ $USER = "oracle" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi
-- 使配置文件生效:
[oracle@db-oracle ~]$ source .bash_profile-- 检查是否生效
[oracle@db-oracle ~]$ echo $ORACLE_BASE
/u01/app/oracle[oracle@db-oracle ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@db-oracle ~]$[oracle@db-oracle ~]$ env | grep ORACLE_SID
ORACLE_SID=orcl
[oracle@db-oracle ~]$[oracle@db-oracle ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/home/oracle/bin:/home/oracle/.local/bin:/home/oracle/bin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/dbhome_1/bin
⛳ 3.5 创建oracle安装文件所在目录
##
1、创建oracle安装文件所在目录
[root@db-oracle ~]# mkdir -p /software/oracle
[root@db-oracle ~]# cd /software/oracle/
##2、上传oracle11g安装包
##3、解压oracle11g安装包
[root@db-oracle oracle]# unzip linux.x64_11gR2_database_1of2.zip
[root@db-oracle oracle]# unzip linux.x64_11gR2_database_2of2.zip
##
4、更改oracle安装文件所在目录的用户组
[root@db-oracle oracle]# chown -R oracle:oinstall database/##
5、更改oracle安装文件所在目录的操作权限
[root@db-oracle oracle]# chmod -R 755 database/
🔻 四、开始安装
在安装前先打开Xmanager - Passive
工具,用来显示远程linux主机图形化界面。
切换至oracle用户
1、windowsIp:Xmanager端口号,export 设置DISPLAY环境变量为安装xmanager的主机IP,注意:这块是0.0还是1.0,可在xmanage右上角查看
[root@db-oracle ~]# su - oracle
[oracle@db-oracle ~]$ export DISPLAY=192.168.181.1:0.0
[oracle@db-oracle ~]$ echo $DISPLAY
192.168.181.1:0.0
2、进入oracle安装文件所在目录
[oracle@db-oracle ~]$ cd /software/oracle/database
[oracle@db-oracle database]$ ./runInstaller
⛳ 4.1 配置更新以及技术支持
⛳ 4.2 配置安装选项
①Create and configure a database ----创建并配置一个新数据库,适用于新安装数据库的用户
②Install database software only -----只安装数据库软件,适用于数据迁移
③Upgrade an existing database ------升级已有数据库
⛳ 4.3 选择网格安装选项
①Single instance database installation ----单实例数据库安装(仅在本节点上安装单实例数据库软件)
②Real Application Clusters database installation -----Oracle RAC数据库安装(可在在集群中的选定节点上选择和安装数据库软件)
⛳ 4.4 选择语言
⛳ 4.5 选择数据库版本–企业版
①Enterprise Edition ----企业版(最强的版本,大部分功能需要付费)
②Standard Edition -----标准版(包括了Standard Edition one 版本的功能和RAC)
③Standard Edition one ------最基本的商业版(包括基本的数据库功能)
⛳ 4.6 指定安装位置
指定Oracle Base和Software Location存储位置。
⛳ 4.7 选择清单目录、指定清单组名称
①该目录统一记录安装的软件信息,记录了每一个Oracle软件主目录的名称和位置、安装的组件,以及一些其他的信息。
②Oracle的集群和数据库软件在进行升级时,通过读取中央目录中的信息来确认哪些软件应被安装的。删除或丢失oraInventory目录的内容,都有可能导致安装或升级报错。
③安装失败需要重新安装时,查看此目录,删除/u01/app/下的oraInventory目录,和/u01/app/oracle 下的product目录。
⛳ 4.8 选择管理员组和系统操作员组
⛳ 4.9 安装检查
忽略32位的这些包,把未安装的64位包手动安装,点击Check Again通过即可。
这里手动安装了
compat-libstdc++-33-3.2.3-72.el7.x86_64_3.rpm
和pdksh-5.2.14
有关32位64位包。
命令:
[root@db-oracle rpm-pages]# rpm -ivh rpm包名 --force --nodeps
⛳ 4.10 开始安装
第一个报错:
Error in invoking target ‘install’ of makefile
‘/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’. See ‘/u01/app/oraInventory/logs/installActions2023-06-13_08-00-29PM.log’ for details.
第一个报错解决:
INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14’
INFO: collect2: error: ld returned 1 exit status
INFO: make: *** [ctxhx] Error 1
-- 编辑 /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk 文件
[root@db-oracle ~]# vim /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
修改
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
为
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
第二个报错:
Error in invoking target ‘agent nmhs’ of makefile
‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’. See ‘/u01/app/oraInventory/logs/installActions2023-06-13_08-00-29PM.log’ for details.
第二个报错解决:
###在makefile中添加链接libnnz11库的参数
[root@db-oracle ~]# vim /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
将
$(MK_EMAGENT_NMECTL)
修改为
$(MK_EMAGENT_NMECTL) -lnnz11
⛳ 4.11 随后会出现执行配置脚本提示窗口
打开一个终端窗口并切换到 root 用户,按照执行配置脚本窗口提示的路径执行脚本
[root@db-oracle ~]#
bash /u01/app/oraInventory/orainstRoot.sh
[root@db-oracle ~]#bash /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
⛳ 4.12 安装完成
🔻 五、监听配置
⛳ 5.1 netca命令配置监听
--
切换至oracle用户
[root@db-oracle ~]$ su - oracle
--执行监听配置命令
[oracle@db-oracle ~]$ netca
⛳ 5.2 监听有关命令
--
监听状态查看
[oracle@db-oracle ~]$ lsnrctl status
--
监听停止
[oracle@db-oracle ~]$ lsnrctl stop
--监听开启
[oracle@db-oracle ~]$ lsnrctl start
🔻 六、dbca建库
⛳ 6.1 dbca命令建库
--
切换至oracle用户
[root@db-oracle ~]$ su - oracle
--dbca命令建库
[oracle@db-oracle ~]$ dbca
注意区分:全局数据库名称上挂载实例,如果集群上会有多个实例,而全局数据库名只有1个
--(Zyl@0411-这里建议不要设置密码带@符号---否则后面建库到45%左右会报ORA-12532:TNS:无效参数)--
🔻 七、数据库简单使用
⛳ 7.1 连接数据库
-- 切换oracle用户
[root@db-oracle ~]# su - oracle
Last login: Tue Jun 13 23:27:36 CST 2023 on pts/3
-- 启动客户端进程
[oracle@db-oracle ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Tue Jun 13 23:28:43 2023Copyright (c) 1982, 2009, Oracle. All rights reserved.
-- 以管理员登录
SQL> conn / as sysdba
SQL> show user;
USER is "SYS"
SQL>
⛳ 7.2 启动或关闭数据库
-- 启动数据库startup;或者startup open;
SQL> startup open;
ORA-01081: cannot start already-running ORACLE - shut it down first-- 关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> startup open;
ORACLE instance started.Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 922749080 bytes
Database Buffers 654311424 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
SQL>
⛳ 7.3 查看监听状态
-- 监听状态查看
[oracle@db-oracle ~]$ lsnrctl status-- 启动监听
[oracle@db-oracle ~]$ lsnrctl start-- 关闭监听
[oracle@db-oracle ~]$ lsnrctl stop
⛳ 7.4 查看数据库版本
-- 查看数据库版本
SQL> select * from v$version;BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - ProductionSQL>
⛳ 7.5 查看数据状态
SQL> select status from v$instance; STATUS
------------
OPENSQL>
⛳ 7.6 查看所有数据库
SQL> select name as database from v$database;DATABASE
---------
ORCLSQL>
⛳ 7.7 创建oracle数据库用户
-- 命令:
create user 用户名 identified by 密码;SQL> create user zyl identified by Zyl#0411;User created.-- 赋权---dba权限,命令grant 权限 to 用户名;
SQL> grant dba to zyl; Grant succeeded.SQL>
⛳ 7.8 查看所有用户
-- 检索用户信息。可检索系统用户(SystemUser)、外部用户(ExternalUser)、和内部用户(CommonUser)的所有信息。
SQL> select * from dba_users;-- 可以通过该功能来获取全部数据库用户的信息,查出被授权的所有Oracle用户的角色,账户名等信息。
SQL> select * from all_users;-- 描述当前用户下所有用户信息的视图
SQL> select * from user_users;
⛳ 7.9 查看用户、角色的权限(直接赋值给用户或角色的权限)
SQL> select * from dba_sys_privs;
⛳ 7.10 当前用户所拥有的系统权限
SQL> select * from user_sys_privs;
⛳ 7.11 查看角色权限((只能查看登陆用户拥有的角色权限)
sql> select * from role_sys_privs;
⛳ 7.12 查看所有角色
sql> select * from dba_roles;
⛳ 7.13 查看用户对象权限
sql> select * from user_tab_privs;
sql> select * from dba_tab_privs;
sql> select * from all_tab_privs;
⛳ 7.14 查看哪些用户有DBA权限
SQL> select * from dba_role_privs where granted_role='DBA';GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SYS DBA YES YES
SYSTEM DBA YES YES
ZYL DBA NO YESSQL>
⛳ 7.15 授权
GRANT:赋予一个用户,一个组或所有用户访问权限
GRANT 语法:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }-- 如:
SQL> grant select, insert, update, delete on dbtest.tab1 to zyl;
⛳ 7.16 回收权限
SQL> revoke select, insert, update, delete on dbtest.tab1 from zyl;