(总结)Oracle 11g用户表空间权限常用管理命令
Posted 码农每日一练
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(总结)Oracle 11g用户表空间权限常用管理命令相关的知识,希望对你有一定的参考价值。
在实际工作中,经常会遇到下面的问题:
一、如何启动数据库?
二、如何在CentOS Linux下配置Oracle 11gR2为系统服务自动启动?
三、如何配置、检查oracle数据库监听?
四、如何创建、删除、修改表空间?
五、如何创建用户,如何进行角色权限管理?
1、从root切换到oracle用户进入:
su - oracle
进入sqlplus环境,nolog参数表示不登录:
sqlplus /nolog
2、以dba身份连接
conn / as sysdba;
或者以管理员模式登录:
sqlplus / as sysdba
3、启动数据库
startup;
Startup nomount (nomount模式)启动实例不加载数据库。
Startup mount (mount模式)启动实例加载数据库但不打开数据库
Startup (open 模式)启动实例加载并打开数据库
4、停止数据库
shutdown immediate; //小编经常忘记了immediate如何拼写。
学习感悟:修改配置文件的时候一定要做好备份工作
解决办法:
1.root用户查看DISPLAY是否设置
env | grep DISPLAY
DISPLAY=:0.0
2.root用户执行
xhost +
3.切换到oracle用户执行dbca
1、查看ORACLE_HOME是否设置
[oracle@oracle10g bin]$ echo $ORACLE_HOME
/opt/ora11/product/11.2.0.3
如果结果是空,需要编写/home/oracle/.bash_profile文件
2、执行dbstart 数据库自带启动脚本
[oracle@oracle10g bin]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /opt/ora11/product/11.2.0.3/bin/dbstart ORACLE_HOME
错误提示:ORACLE_HOME_LISTNER 没有设置
[oracle@oracle10g bin]$ cd /opt/ora11/product/11.2.0.3/bin/
[oracle@oracle10g bin]$ ll | grep dbs
-rwxr-x--- 1 oracle oinstall 6582 Jan 1 2000 dbshut
-rwxr-x--- 1 oracle oinstall 14088 Jan 1 2000 dbstart
编辑 dbstart,将ORACLE_HOME_LISTNER=$1修改成ORACLE_HOME_LISTNER=$ORACLE_HOME
3、编辑/etc/oratab文件
dbca建库时都会自动创建/etc/oratab文件
将gnnt:/opt/ora11/product/11.2.0.3:N 修改成
gnnt:/opt/ora11/product/11.2.0.3:Y
4、编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
该文件必须使用root用户编辑
[root@oracle10g ~]# vi /etc/rc.d/rc.local
[root@oracle10g ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
su - oracle -lc /opt/ora11/product/11.2.0.3/bin/dbstart
su - oracle -lc "/opt/ora11/product/11.2.0.3/bin/lsnrctl start"
5、重启主机,查看数据库和监听是自启动
6、查看数据库是否处于open状态
最后的保证数据库是否处于可用状态
sqlplus / as sysdba;
SQL> select status from v$instance;
STATUS
------------
OPEN
1、监听器(LISTENER)
监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
2、本地服务名(Tnsname)
Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名
3、Oracle网络连接配置方法
配 置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle服务端或客户端的配置)。在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:
$ netmgr
---listener.ora
# listener.ora Network Configuration File: /opt/ora11/product/11.2.0.3/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Oracle8)
(ORACLE_HOME = /opt/ora11/product/11.2.0.3)
(SID_NAME = gnnt)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.193.131)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /opt/ora11
-----tnsname.ora
# tnsnames.ora Network Configuration File: /opt/ora11/product/11.2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/ora11/product/11.2.0.3)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = gnnt)
(ORACLE_HOME = /opt/ora11/product/11.2.0.3)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.193.131
)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /opt/ora11
4、连接数据库服务器
(1) 启动服务器端监听器与数据库服务
Linux/Unix下,启动监听器:
$ lsnrctl start
关闭监听器:
$ lsnrctl stop
查看监听状态:
$ lsnrctl status
1、数据表及表空间:
创建表空间:
SQL> create tablespace test20171120 datafile '/db/oradata/gnnt/test20171120.dbf'size 100m autoextend on;
Tablespace created.
说明:末尾带autoextend on参数表示当表空间大小不够用时会自动扩容,所以建议加上autoextend on参数。
2、删除表空间:
drop tablespace ittbank including contents and datafiles;
3、修改表空间大小(注:修改=可以增大,可以减小。)
alter database datafile '/db/oradata/gnnt/test20171120.dbf' resize 200m;
4、增加表空间大小(注:增加=只能增大,不能减少。)
alter tablespace test20171120 add datafile '/db/oradata/gnnt/test2017112002.dbf' size 2048m;
5、查询数据库文件:
select * from dba_data_files;
6、查询当前存在的表空间:
select * from v$tablespace;
7、表空间情况:
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
8、查询表空间剩余空间:
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
注:以下命令都需要DBA权限。
1、创建用户:
create user test20171120 identified by 123456 ;
2、赋予用户的表空间权限:
alter user test20171120 default tablespace test20171120;
或者两条命令合并为:
create user test20171120 identified by 123456 default tablespace test20171120;
注:刚刚创建完的新用户是没有任何权限的,甚至连登录数据库的权限都没有。这时使用conn 用户名/密码 会提示没有权限。在新建一个用户之后还要对这个用户进行授权操作。当然是要使用有能力授权的用户,如sys、system。角色是指由系统权限集合。通常给某个用户授予权限时如果没有角色存在的话,那么需要一条一条的操作,角色的存在就是使得授权变得很方便。通常一个角色由多个系统权限组成。常用的角色有三个connect(7种权限)、dba、resource(在任何表空间建表)。
3、授予用户管理权限:
grant connect,resource,dba to test20171120 ;
4、删除用户
drop user "test20171120" cascade;
注:cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数。"name"的引号有无都是一样的。
5、修改用户密码
password test20171120( 在用户已经连接的情况下 )或者
alter user test20171120 identified by newpassword
注意:在给其他用户修改密码时,需要具有DBA的权限或拥有alter user的系统权限。
6、查看当前用户的角色
select * from user_role_privs;
select * from session_privs;
7、查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;
8、修改用户口令
alter user "name" identified by "password";
9、显示当前用户
show user;
以上是关于(总结)Oracle 11g用户表空间权限常用管理命令的主要内容,如果未能解决你的问题,请参考以下文章