Oracle实例、用户、权限和角色

  一、数据库的实例:数据库建立后会有一系列为该数据库提供服务的内存空间和后天进程,称为该数据库的实例。每个数据库至少会有一个实例为其服务。实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机系统的性能给SGA分配很是可观的内存空间。数据库

  二、虽然一个Oracle数据库服务器中能够安装多个数据库,可是一个数据库须要占用很是大的内存空间,所以通常一个服务器只安装一个数据库。每个数据库能够有不少用户,不一样的用户拥有本身的数据库对象(好比:数据库表),一个用户若是访问其余用户的数据库对象,必须由对方用户授予必定的权限。不一样的用户建立的表,只能被当前用户访问。所以在Oracle开发中,不一样的应用程序只需使用不一样的用户访问便可。服务器

  三、Oracle 用户和权限session

  Oracle中,通常不会轻易在一个服务器上建立多个数据库,在一个数据库中,不一样的项目由不一样的用户访问,每个用户拥有自身建立的数据库对象,所以用户的概念在Oracle中很是重要。Oracle的用户能够用CREATE USER命令来建立。其语法是:性能

  CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]spa

  LOCK|UNLOCK建立用户时是否锁定,默认为锁定状态。锁定的用户没法正常的登陆进行数据库操做。对象

  尽管用户成功建立,可是还不能正常的登陆Oracle数据库系统,由于该用户尚未任何权限。若是用户可以正常登陆,至少须要CREATE SESSION系统权限。索引

  Oracle用户对数据库管理或对象操做的权利,分为系统权限和数据库对象权限。系统权限好比:CREATE SESSION,CREATE TABLE等,拥有系统权限的用户,容许拥有相应的系统操做。数据库对象权限,好比对表中的数据进行增删改操做等,拥有数据库对象权限的用户能够对所拥有的对象进行对应的操做。进程

  还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。下面介绍几个经常使用角色:内存

  ①CONNECT角色,主要应用在临时用户,特别是那些不须要建表的用户,一般只赋予他们CONNECT role。CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,能够与服务器创建链接会话(session,客户端对服务器链接,称为会话)。开发

  ② RESOURCE角色,更可靠和正式的数据库用户能够授予RESOURCE role。RESOURCE提供给用户另外的权限以建立他们本身的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。

  ③ DBA角色,DBA role拥有全部的系统权限----包括无限制的空间限额和给其余用户授予各类权限的能力。用户SYSTEM拥有DBA角色。

  通常状况下,一个普通的用户(如SCOTT),拥有CONNECT和RESOURCE两个角色便可进行常规的数据库开发工做。

  能够把某个权限授予某个角色,能够把权限、角色授予某个用户。系统权限只能由DBA用户受权,对象权限由拥有该对象的用户受权,受权语法是:GRANT角色|权限 TO 用户(角色)

  //回收权限

  REVOKE 角色|权限 FROM 用户(角色)

  //修改用户的密码

  ALTER USER 用户名 IDENTIFIED BY 新密码

  //修改用户处于锁定(非锁定)状态

  ALTER USER 用户名 ACCOUNT LOCK|UNLOCK

相关文章
相关标签/搜索