一概述
用户管理是网络数据库管理系统的常用要求之一,连接到数据库的每一个用户必须是系统的合法用户。用户是要使用网络数据库的管理系统,必须要拥有相应的权限,创建用户并授予权限权限是DBA的常用任务之一。下面以Oracle数据库为例,阐述网络数据库的用户管理。
二:配置身份验证
用户是数据库的使用者。Oracle为用户提供了密码验证、外部验证、全局认证三种身份验证方法。其中密码验证是常用的方法。
2.1 密码验证
当一个使用密码验证机制的用户试图进入数据库时,数据库会核实用户名是否有效,并验证于该用户在数据库中存储的密码是否相匹配。
由于用户信息和密码都存储在数据库内部,所以密码验证用户也称为数据库验证用户。
2.2 外部验证
当一个外部验证机制用户试图进入数据库时,数据库会核实用户名是否有效,并确信该用户并不在数据库中存储一个验证密码。
2.3 全局验证
全局验证用户也不在数据库中存储验证密码,这种类型的验证是通过一个高级安全选项所提供的身份验证服务来进行的。
三:数据库用户管理
用户的相关信息包括用户名和密码、用户的配置信息(包括用户的状态,用户的默认表空间等)、用户权限、用户·对应方案中的对象等。
用户一般都是由DBA来创建和维护的。创建用户后,用户不可以执行任何Oracle操作,只有赋予用户相关的权限,用户才能执行相关权限允许范围内的相关操作。
3.1 创建用户
用户访问数据库前必须要获得相应的授权的账号,创建一个新的用户(密码验证用户),最基本的创建用户语句为:
CREATE USER user;
IDENTIFIED BY passHord;
CREATE USER,IDENTIFIED BY 为语法保留字。CREATE USER后面是创建的用户名字,而IDENTIFIED BY后面则是用户的初始密码。
执行该语句的用户需要有创建用户权限,一般为系统DBA用户(如SYS和SYSTEM用户)。
3.2 修改用户
用户创建完成后,管理员可以对用户进行修改,包括修改用户口令、改变用户默认表空间、临时表空间、磁盘配额及资源限制等修改用户密码语句为:
ALTER USER user IDENTIFIED BY 新密码;
此命令不需要输入旧密码,直接可以把用户的密码修改为新密秒,但前提是该用户已经登录了Oracle服务器。
3.3删除用户
删除用户后,Oracle会从数据字典中删除用户方案及其所有对象方案,其语句为:
DROP USER user [CASCADE]
当用户已经创建了相关的存储对象时,默认是不能删除用户的,需要先删除该用户下所有对象,然后才能删除该用户名。该操作也可以使用CASCADE选项来完成,CASCADE选项来完成,CASCADE表示系统先自动删除该用户下的所有对象,然后再删除该用户名。已经登录的用户是不允许被删除的。
四:数据库权限管理
在Oracle服务器中,用户只有获得了相关的权限,才能执行该权限允许的操作。在Oracle中存在以下两种用户权限。
<1>系统权限。允许用户在数据库中执行指定的行为,一般可以理解成比较通用的类权限。
<2>对象权限。允许用户操作一个指定的对象,该对象是一个确切存储数据库中的命名对象。
4.1系统权限
Oracle系统中包含100多种系统权限,其主要作用为:
《1》执行系统端的操作,如CREATE SESSION是登录的权限,CREATE TABLE SPACE是创建表空间的权限。
《2》管理某类对象,如CREATE TABLE 是用户创建表的权限。
《3》管理任何对象,如CREATE ANY TABLE ,ANY关键字表明该权限的“权力”比较大,可以管理任何用户下的表。一般只有DBA可以使用该权限,普通用户是不应该拥有该类权限的。
下面是部分系统权限例子:
(1)表
<1>CREATE TABLE(创建表)
<2>CREATE ANY TABLE(在任何用户创建表)
<3>ALTER ANY TABLE (修改任和用户表的定义)
<4>DROP ANY TABLE(删除任何用户的表)
<5>SELECT ANY TABLE(选择任何用户的表中查询数据)
<6>UPDATE ANY TABLE(更改任何用户表的数据)
<7>DELETEM ANY TABLE(删除任何用户的表的记录)
(2)索引
<1>CREATE ANY INDEX(在任何用户下创建索引)
<2>ALTER ANY INDEX(修改任何用户的索引定义)
<3>DROP ANY INDEX(删除任何用户的索引)
(3)会话。
<1>CREATE SESSION (创建会话,登录权限)
<2>ALTER SESSION(修改会话)
(4)表空间。
<1>CREATE TABLE SPACE(创建表空间)
<2>ALTER TABLE SPACE(修改表空间)
<3>DROP TABLE SPACE(删除表空间)
<4>UNLIMTED TABLE SPACE(不限制任何表空间的配额)。
4.2 授予用户系统权限
授予用户权限的语句为:
GRANT系统权限TO user[WITH ADMIN OFTION];
WITH ADMIN OPTION的含义是把该权限的管理权限也赋予用户。默认情况下,权限的赋予工作是由拥有管理权限的管理员来执行的。当权限被赋予其他用户后,其他用户获得该权限的使用权,可以使用在该权限允许范围内的相关Oracle操作,但用户并没有获得该权限的管理权,所以该用户没有权限把该权限在赋予其他用户。使用WITHADMINOPTION选项则可以获得授予普通用户管理权限的权限。
4.3回收系统权限
回收系统权限的语句为:
REVOKE系统权限FROM user;
它只能回收使用了GRANT授权过的权限,权限被收回后,用户就失去了原权限的使用权和管理权。
4.4 对象权限
对象权限的种类不是很多,但数量相当大,因为具体对象的数量很多。
对于对象权限来说,表除执行的权限外,其余的对象权限都有;视图没有修改的权限(含在创建视图权限中),也不能基于视图来创建索引;序列只有修改和查询的权限;而存储过程则只有执行的权限。
对象权限除了直接作用在某个对象外,还可以对表中的具体列设置对象权限。
授予对象权限分类[(列名列表)]ON对象名TO user
[WITH GRANT OPTION]
授予对象权限的用户是对象的拥有者或者其他对象管理权限的用户(常为DBA)。也可以把对象的管理权限赋予其他用户,其语句为WIT H GRANT OPTION.
回收对象权限的语句为:
REVOKEED 对象权限种类[(列名列表)]ON 对象名 FROW user;
对象的权限会级联回受,这一点同系统权限的级联回收策略不同。
·