您的位置:首页 > 数据库 > Oracle

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

2011-04-22 11:04 405 查看
合理的用户和权限管理对于数据库系统的高效、安全、可靠是很关键的。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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: