Oracle 的用户可以用 CREATE USER 命令来创建。其语法是:
CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]
eg:
SQL> CREATE USER jarvis
2 IDENTIFIED BY tom
3 ACCOUNT UNLOCK;
用户已创建。
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 用户(角色)
eg:
SQL> GRANT CONNECT TO jarvis;
授权成功。
SQL> GRANT RESOURCE TO jarvis;
授权成功。
回收权限:
REVOKE 角色|权限 FROM 用户(角色)
修改用户密码:
ALTER USER 用户名 IDENTIFIED BY 新密码
修改用户密码处于锁定(非锁定)状态:
ALTER USER 用户名 ACCOUNT LOCK|UNLOCK