(总结)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如何拼写。


学习感悟:修改配置文件的时候一定要做好备份工作

 执行dbca时报错:Xlib:No protocol specified  

解决办法:
 1.root用户查看DISPLAY是否设置
   env | grep DISPLAY
   DISPLAY=:0.0
 2.root用户执行
   xhost +
 3.切换到oracle用户执行dbca
 


二、oracle 数据库开机自启动

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


三、如何配置、检查oracle数据库监听?

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

(总结)Oracle 11g用户、表空间、权限常用管理命令(总结)Oracle 11g用户、表空间、权限常用管理命令

---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用户表空间权限常用管理命令的主要内容,如果未能解决你的问题,请参考以下文章

Oracle基础维护01-常用管理命令总结

oracle 11g 如何建立表空间及用户,分配用户权限等

Oracle 11g 创建表空间权限不足试过了好多方法还是没用

oracle 11g 怎样创建用户

ORACLE 11g用户权限管理查询

Oracle11g全新讲解之用户权限管理