现在的位置: 首页 > 数据库 > 正文

Oracle用户管理基础

2014年11月03日 数据库 ⁄ 共 2077字 暂无评论 ⁄ 阅读 777 次
文章目录

创建用户

Oracle创建用户语法:

CREATE USER user_name

IDENTIFIED BY password | EXTERNALLY AS certificate_DN | GLOBALLY AS directory_DN

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA size|UNLIMITED ON tablespace]

[PROFILE profile]

[PASSWORD EXPIRE]

[ACCOUNT LOCK|UNLOCK]

  • 其中,IDENTIFIED BY password | EXTERNALLY AS certificate_DN | GLOBALLY AS directory_DN为用户验证的三种方式,第一种是密码验证,第二种以外部作为验证方式,第三种以作局作为验证方式。
  • DEFAULT TABLESPACE设置默认表空间,若省略则存放在数据库默认表空间,若数据库不存在默认表空间则存放在SYSTEM表空间。同理,TEMPORARY TABLESPACE指定默认临时表空间。
  • QUOTA指定当前用户使用表空间配额(最大值),设置成UNLIMITED则表示没有限制。
  • PROFILE设置当前用户使用的概要文件名称,若省略则使用数据库默认文件。
  • PASSWORD EXPIRE设置当前用户密码立即过期,若用户想再登录则必须修改密码。
  • ACCOUNT可设置用户锁定状态。

修改用户

与用户创建语法基本一致,不同之处在于开头关键字:“ALTER USER user_name”,其他完全一样。

删除用户

删除用户时也会把该用户所使用的数据库对象一并删除,语法:

DROP USER user_name CASCADE

若用户下没有任何数据库对象,则可以省略CASCADE关键字。

授予权限

Oracle中,权限有系统权限和对象权限两类。系统权限主要指SESSION权限、USER权限等,对数据库系统级的操作都可称为系统权限。对象权限主要指表、序列、触发器等操作的权限。

系统权限授权语法:

GRANT sys_privilege TO user [WITH ADMIN OPTION];

  • sys_privilege是授权的系统权限名,也可替换为ALL PRIVILEGE,它设置除SELECT ANY DICTIONARY权限之外的所有系统权限。
  • WITH ADMIN OPTION,有该子句则表示当前用户可以给其他用户授予该权限。

对象权限授权语法:

GRANT privilege

ON schema.object

TO user|role

[WITH ADMIN OPTION]

[WITH THE GRANT ANY OBJECT]

  • privilege,对象权限的名称,也可以是ALL,此时代表授予用户所有的对象权限;
  • object,用户授予的对象;
  • user|role,被授权的用户或角色;
  • WITH ADMIN OPTION,有该子句则表示当前用户可以给其他用户授予该权限;

撤销权限

撤销系统权限语法:

REVOKE privilege

FROM user|role

撤销对象权限语法:

REVOKE privilege

ON schema.object

FROM user|role

[CASCADE CONSTRAINTS]

  • CASCADE CONSTRAINTS表示该用户授予其他用户的权限也一并撤销。

查看用户权限

用户的系统权限存放在数据字典DBA_SYS_PRIVS中,对象权限存放在数据字典DBA_TAB_PRIVS中。如:

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=’user_name’;

SELECT PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE=’user_name’;

同时,对于非DBA用户,也可使用数据字典USER_SYS_PRIVS查看当前用户系统权限,使用ALL_TAB_PRIVS查看当前用户对象权限。

角色管理

角色由一组权限组成,给用户授予角色相当于批量赋权。一个角色可以赋予多个用户,一个用户也可以被授予多个角色。

创建角色

创建角色是在数据库中创建一个只有名称的角色,语法如下:

CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED BY password | IDENTIFIED BY EXETERNALLY | IDENTIFIED BY GLOBALLY]

创建角色时有4种验证方式,第一种NOT IDENTIFIED不需要验证;第二种IDENTIFIED BY password需要密码验证;第三种是外部验证,第四种是全局验证。

角色授权

角色授权与用户授权方式语法一样。

授予角色

使用角色语法:GRANT role_name TO user_name;

修改角色

修改角色只能修改其验证方式,若需要修改授权需要使用GRANT或REVOKE;

删除角色

使用语法:DROP ROLE role_name;

查询角色

借助于数据字典DBA_ROLE_PRIVS。

声明:该笔记转载自《Oracle从入门到精通》,仅用于个人学习,若侵犯到您的版权敬请告知!

» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?