Oracle的用户权限和角色

用户和权限

LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。

--给普通用户SCOTT解锁,同时把SCOTT用户的密码进行修改
--语法结构:ALTER USER 用户名 IDENTIFIED BY 新密码 ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY SCOTT ACCOUNT UNLOCK;

 

Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。Oracle的用户可以用CREATE USER命令来创建。
--创建新用户
--语法结构:CREATE USER 用户名 IDENTIFIED BY 密码;
CREATE USER JERRY IDENTIFIED BY jerry;

 

尽管用户成功创建,但是还不能正常的登录Oracle数据库系统,因为该用户还没有任何权限。如果用户能够正常登录,至少需要CREATE SESSION系统权限。

    Oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。系统权限比如:CREATE SESSION,CREATE TABLE等,拥有系统权限的用户,允许拥有相应的系统操作。数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。

--给新用户JERRY授予CREATE SESSION系统权限
--语法结构:GRANT 系统权限 TO 用户;
GRANT CREATE SESSION TO JERRY;

 

角色

  这样一个一个权限的授予用户,就显得特别繁琐,因此Oracle还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。下面介绍几个常用角色:

  CONNECT角色,主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECT role。CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。

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

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

 

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

   可以把某个权限授予某个角色,可以把权限、角色授予某个用户。系统权限只能由DBA用户授权,对象权限由拥有该对象的用户授权,

--给新用户JERRY授予角色
--语法结构:GRANT 角色 TO 用户;
GRANT CONNECT,RESOURCE TO JERRY;

 

--查询当前用户下的系统权限
SELECT * FROM SESSION_PRIVS;

--回收权限
--语法结构:REVOKE 系统权限 | 角色 FROM 用户;
REVOKE RESOURCE FROM JERRY;

--删除用户
--语法结构:DROP USER 用户名;
DROP USER JERRY;

--查询当前用户下的所有表信息
SELECT * FROM USER_TABLES;

 

提示:Oracle数据库中,默认情况下,所有系统的数据,SQL关键字等都是大写的,在操作过程中,Oracle会自动把这些内容转换为大写,因此用户操作时不需考虑大小写问题,一般情况下,为了良好的程序风格,程序中建议关键字用大写,非关键字可以使用小写。

posted @ 2020-10-01 22:57  小碗吃不胖的  阅读(352)  评论(0编辑  收藏  举报