ORACLE创建用户、角色及权限管理

来源:互联网 发布:国美淘宝 编辑:程序博客网 时间:2024/05/18 15:24

合理的用户和权限管理对于数据库系统的高效、安全、可靠是很关键的。ORACLE在用户及权限管理上有许多新的概念和特性。

说明:

对用户及权限的管理需要进入SQL*Plus交互工具。每一个SQL语句后要以分号“;”结束。退出交互工具命令为:quit

SQL命令语句及可选项不区分大小写,本文中出现大写的地方是强调作用。

 

每个ORACLE数据库都有许多合法用户,这些用户可以根据用户名和口令登录数据库,并使用SQL语言存取数据。

 

(1)      创建用户

 

创建用户命令格式

 

说 明

 

create user 用户名;

 

创建用户的操作必须由DBA来做,一般用户无权创建用户。用户名必须是唯一的,即同一数据库中不能有两个相同的用户。

 

identified by 口令;

 

为用户设置口令

 

default tablespace 表空间名;

 

表示该用户存放数据的缺省表空间

 

temporary tablespace 表空间名;

 

表明用户使用的缺省临时表空间名

 

quota 大小 on 表空间名;

 

quota 可以限制用户在某个表空间上最多可使用多少字节

 

profile 资源文件;

 

profile 为用户指定各种资源的使用

 

 

下面是一个创建用户的完整例子:

 

create user scott;

 

identified by tiger;

 

default tablespace data_ts;

 

temporary tablespace temp_ts;

 

quota 500K on data_ts;

 

profile newprofile;

 

(2)      修改用户

对用户的修改包括:口令字、缺省表空间、临时表空间、表空间限量、profile、缺省角色。角色是ORACLE7的一个新概念,我们在“权限管理”里再讨论。在这里可把角色看成具有某些权限的一个特殊用户。修改用户的缺省角色也就是为用户指明另一个权限的集合。下面举例说明修改用户的操作:

 

任   务

 

命   令

 

将scott的口令改为hello

 

ALTER USER scott IDENTIFIED BY hello;

 

将scott的缺省表空间改为data2_ts

 

ALTER USER scott DEFAULT TABLESPACE data2_ts;

 

将scott的临时表空间修改为temp2_ts

 

ALTER USER scott TEMPORARY TABLESPACE temp2_ts;

 

将scott的资源文件改为otherprofile

 

ALTER USER scott PROFILE otherprofile;

 

将scott的缺省角色改为DEVELOPER

 

ALTER USER scott DEFAULT ROLE DEVELOPER;

 

将当前系统所有角色都授予scott,除Payroll外

 

ALTER USER scott DEFAULT ROLE ALL EXCEPT Payroll;

 

 

(3)      删除用户

删除用户的命令为:

DROP USER 用户名 [CASCADE];

若不使用CASCADE选项,则必须在该用户的所有实体都删除之后,才能删除该用户。使用CASCADE后,则不论用户实体有多大,都一并删除。

 

ORACLE的安全机制,是由系统权限、实体权限和角色权限这三级体系结构组成的。

 

权限类型

 

说   明

 

系统权限

 

是指对数据库系统及数据结构的操作权,例如创建/删除用户、表、同义词、索引等等

 

实体权限

 

是指用户对数据的操作权,如查询、更新、插入、删除、完整性约束等等

 

角色权限

 

是把几个相关的权限组成角色,角色之间可以进一步组合而成为一棵层次树,以对应于现实世界中的行政职位。角色权限除了限制操作权、控制权外,还能限制执行某些应用程序的权限。

 

这样的安全控制体系,使得整个系统的管理人员及程序开发人员能控制系统命令的运行、数据的操作及应用程序的执行。

 

 

(1)      系统权限

系统权限的授予命令为GRANT,例如把创建任何表视图的权限授予scott用户:

GRANT create any view TO scott;

系统权限的回收命令为REVOKE,例如将create any view 权限从scott用户手中收回:

REVOKE create any view FROM scott;

 

 

(2)      实体权限

每种类型的实体有与之相关的实体权限。

授予实体权限的命令举例(将EMP表上的Select和Insert权限授给scott):

GRANT select,insert ON emp TO scott;

回收实体权限的命令举例(将EMP表上的Select权限从scott手中回收):

REVOKE select ON emp FROM scott;

 

 

(3)      管理角色

角色是许多权限和角色的组合,它极大地方便了ORACLE的权限管理。

 

创建角色,如创建一个名为dept1的角色,口令字为hello:

CREATE ROLE dept1 IDENTIFIED BY hello;

 

使用角色,可以通过修改用户的缺省角色来使用角色,或通过授权的方法来将角色授予其它角色或用户。如将scott用户的缺省角色修改为DEVELOPER:

ALTER USER scott DEFAULT ROLE DEVELOPER;

 

将角色dept1授予manager角色:

GRANT manager TO scott;

 

使角色生效或失效,DBA可以通过控制角色的生效或失效,来暂时回收用户的一部分权限。如使dept1角色失效:

SET ROLE dept1 DISABLE;

 

删除角色,这将会影响到拥有该角色的用户和其它角色的权限。用DROP ROLE命令删除角色,如:

DROP ROLE dept1;

 

转自:http://apps.hi.baidu.com/share/detail/22916811

原创粉丝点击