用户、权限和角色

用户、权限和角色

用户:用户是数据库的使用者。
用户一般是由DBA来创建和维护的,创建用户后,用户不可以执行任何Oracle操作(包括建立会话),只有赋予用户相关的权限,用户才能执行权限允许范围内的操作。

创建用户

语法

CREATE USER user  
IDENTIFIED BY password  
[default tablespace 默认表空间名 temp tablespace临时表空间名 quota 配额大小 on 表空间名]  

deafulttablespace:用户的默认表空间;
temporary tablespace: 用户的临时表空间;
quota on :表示允许该用户在表空间中使用的空间大小, 可以设置多个不同的表空间;

执行该语句的用户需要有“创建用户”的权限,一般为系 统的DBA用户。

系统权限

授予系统权限
语法

GRANT sys_priv_list TO user_list [WITH ADMIN OPTION]  

sys_priv_list:系统特权列表,由逗号分隔;
user_list: 用户列表,由逗号分隔;
WITH ADMIN OPTION:允许权限的接受者再把此特权授予 其他用户。

CREATE SESSION 登录权限
CREATE TABLE 建表权限
回收系统权限
REVOKE sys_priv_listFROM user_list;

如果A授予权限给B,B又把该权限赋予给C,如果此时A把权 限从B处收回,那么B给予出去的权限是继续保留,即C继续 拥有该权限。

对象权限

语法

GRANT object_priv| [ALL PRIVILEGES ]|[(column)]  
ON[schema.]object  
TO{user|PUBLIC} [WITH GRANT OPTION];  

object_priv:是将被授予的对象权限;
ALL PRIVILEGES:指定对象的所有权限;
column:在授予INSERT、REFERENCES或UPDATE权限时可以 指定列;
ON object:指定的对象名;
TO user:指定权限被授予谁;
TO PUBLIC:授予权限给所有用户;
WITH GRANT OPTION:允许被授予权限的用户再授予对象权 限给其它用户;
SCHEMA:指定用户名,如果省略,默认为当前用户;

回收对象权限
REVOKE 对象权限种类ON 对象名FROM user;

角色

角色:角色是权限的集合。 (方便权限再赋予)
创建角色

CREATE ROLE role;  

为角色授权

GRANT 权限列表TO 角色列表;  

通过角色为用户授权

GRANT 角色列表To 用户列表;  

通过角色从用户收回权限

REVOKE 角色FROM 用户;  

从角色收回权限

REVOKE 权限FROM 角色;  

删除角色

DROP ROLE 角色;  

修改用户

修改配额

ALTER USER 用户名  
QUOTA 10mON 表空间名;  

修改密码

ALTER USER userIDENTIFIED BY 新密码;  

用户状态
OPEN:正常状态,为用户帐号初始创建后状态。
EXPIRED:密码过期状态,用户下次登录的时候需要修改密码;
LOCKED:锁定状态,不能执行任何Oracle相关操作

ALTER USER user PASSWORD EXPIRE;--密码过期  
ALTER USER user ACCOUNT LOCK[UNLOCK];--帐户锁定/解锁  

删除用户

DROP USER user [CASCADE]  

CASCADE表示系统先自动删除该用户下的所有对象,然后再 删除该用户的定义。
已经登录的用户是不允许被删除的。