单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,大型数据库概论,Introduction of Large Database,第7章 Oracle9i数据库的安全性,大型数据库概论,1,学习目标,1、掌握,创建、查看、修改和删除用户的方法,。,2、掌握,授予和撤销系统权限、对象权限的方法,。,3、掌握,创建、查看和删除角色的方法,。,学习目标,2,第7章 Oracle9i数据库的安全性,数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。Oracle 9i数据库系统中存放着大量的共享数据,为保证其安全性,Oracle 9i提供了一整套强大的安全管理工具。,7.1 用户管理,用户就是使用数据库系统的所有合法操作者,如Oracle9i的两个默认用户:SYS和SYSTEM。创建并运行数据库实例后,使用SYSTEM用户登录就可以创建其他用户和授予权限。用户管理涉及到用户的创建、修改和删除。,7.1.1 用户认证(User Authentication),每个用户登录Oracle9i数据库都必须由系统对其进行认证,Oracle9i提供了四种认证方式:,n,数据库认证(Database Authentication),数据库认证又称口令认证,由Oracle9i进行认证。在登录数据库时,由用户提供一个账户和密码,密码必须遵循与其它数据库对象相同的命名规则,密码以加密格式保存,。,第7章 Oracle9i数据库的安全性,3,n,外部认证(External Authentication),外部认证由操作系统或网络服务(Oracle*Net)进行认证。此时Oracle9i的用户名由一个前缀(默认为OPS$)加操作系统登录名称组成,该前缀由OS_AUTHENT_PREFIX初始化参数定义。例如,若OS_AUTHENT_PREFIX设置为NT_,而用户的操作系统登录名称是AUSTEN,则AUSTEN创建的Oracle9i用户名为NT_AUSTEN。通过外部认证,数据库借助于操作系统或网络认证服务来限制对数据库账号的访问。,n,全局认证(Global Authentication),全局认证由安全套接层SSL(Secure Sockets Layer)认证,进行这种认证的用户称为全局用户。Oracle9i的安全机制允许将用户相关的信息集中在一个基于LDAP(Light weight Directory Access Protocol)的目录服务,这样,用户在数据库中被识别成全局用户,通过SSL对他们进行认证,而对这些用户的管理则在数据库之外由集中起来的目录服务完成。,n,代理认证(Proxy Authentication),代理认证是为代理用户设计一个中间层服务器,数据库管理员对中间层服务器进行授权,然后由中间层服务器进行认证。,n外部认证(External Authenticatio,4,7.1.2 创建用户,创建用户有两种方式:使用企业管理器或手工创建。,1.使用企业管理器创建用户,启动企业管理器后,展开“安全性”节点,如图7.1所示。,图7.1 展开“安全性”节点,7.1.2 创建用户图7.1 展开“安全性”节点,5,右击“用户”,在快捷菜单中选择“创建”,打开如图7.2所示的“创建用户”对话框。,图7.2“创建用户”对话框(“一般信息”选项卡),右击“用户”,在快捷菜单中选择“创建”,打开如图,6,该对话框包括一般信息、角色、系统权限、对象权限、限额等8个选项卡。其中,“一般信息”选项卡用来创建和维护用户的基本信息,可以进行如下信息的设置:,n,名称:在名称文本框中输入要创建的用户名,用户名一般采用Oracle9i字符集中的字符,最长30个字符。本例为TESTUSRE。,n,概要文件:概要文件下拉列表框显示分配给用户的配置文件,此配置文件用于限制用户对系统资源的使用和执行密码管理的规则。配置文件一般要事先创建好,然后再指派给用户。,n,验证:验证下拉列表框中包括口令、外部和全局三个选项。当需要输入和验证口令时,选择“口令”选项;当使用操作系统登录名时,选择“外部”选项;当用户在多个数据库中被全局标识时,选择“全局选项”。,u,输入口令:当选择“口令”验证方式时,在“输入口令”文本框中输入该用户的口令。,u,确认口令:再次输入口令,两次输入一致才能通过确认。,该对话框包括一般信息、角色、系统权限、对象权限、限额,7,u,口令即刻失效:指定用户的密码已经到期、失效,强制用户更改密码。,n,表空间:表空间下接列表框可以选择默认表空间或临时表空间。,n,状态:分锁定用户账号和解锁用户账号两种状态。,2.手工创建用户,创建用户主要是通过CREATE USER命令,语法如下:,CREATE USER 用户名,IDENTIFIED BY 密码,|EXTERNALLY|GLOBALLY AS 外部名,DEFAULT TABLESPACE 默认表空间名称,|TEMPORARY TABLESPACE 临时表空间名称,|QUOTA 数目K|M|UNLIMITED ON 表空间名称,|PROFILE 用户配置文件,|PASSWORD EXPIRE,|ACCOUNT LOCK|UNLOCK;,u口令即刻失效:指定用户的密码已经到期、失效,强制用户更,8,上面语法中各参数描述如下:,n,IDENTIFIED BY 密码|EXTERNALLY|GLOBALLY AS外部名:定义了认证方式。这里有3种认证方式供选择,分别是数据库认证、外部认证和全局认证。,n,DEFAULT TABLESPACE:只有在允许用户创建数据库对象(例如表或索引)时才需要它。否则,不需要默认的表空间。如果没有指定一个默认的表空间,那么新用户将继承创建它的用户的默认表空间。,n,TEMPORARY TABLESPACE:Orcale9i有时需要临时表空间对查询结果排序、执行一个连接或其它任务。如果省略了这个选项,则使用在CREATE DATABASE命令或者随后的ALTER DATABASE命令所指定的默认临时表空间(若未指定,则使用SYSTEM表空间)。,n,QUOTA:配额,即在表空间中可以分配给用户的最大存储空间。利用QUOTA选项可以限制允许用户使用的表空间的数量。限制各用户的总存储空间可以防止数据库不受控制地增长,限制临时存储空间可以防止一个用户使用了太多的临时空间,导致其他用户的操作很慢或者停止。,上面语法中各参数描述如下:,9,n,PROFILE:用户配置文件,是一个参数集合,用于限制用户对系统资源的使用和执行密码管理的规则,所有用户都必须有一个配置文件。如果在创建用户时这一选项没有指定,那么Oracle9i为用户指定默认的配置文件DEFAULT(在创建数据库之后创建的一个预定义配置文件)。,n,PASSWORD EXPIRE:将密码设置为自动过期,过期的密码使数据库在用户下一次登录时强制用户更改其密码。,n,ACCOUNT:即使一个用户提供了正确的密码或通过了操作系统的验证,这个选项将最终决定一个用户是否可以登录数据库。使用ACCOUNT LOCK选项锁定一个用户,可以有效地防止这个用户访问数据库。默认设置是ACCOUNT UNLOCK,这允许用户使用新的用户名和密码登录。ACCOUNT LOCK更常见的用法是与ALTER USER语句一起使用,以防止现有的用户访问数据库。,n PROFILE:用户配置文件,是一个参数集合,用于限,10,例7.1 创建一个数据库认证的用户testuser1。以下脚本运行结果如图7.3所示。,CREATE USER testuser1 IDENTIFIED BY test#1,DEFAULT TABLESPACE users,TEMPORARY TABLESPACE temp,QUOTA 10M ON USERS QUOTA 5M ON TEMP,PROFILE DEFAULT ACCOUNT UNLOCK;,本例创建的用户testuser1采用数据库认证方式,密码为test#1,默认表空间为users表空间,临时表空间为temp表空间,对users表空间和temp表空间的限额分别为10M和5M,使用默认的配置文件,帐户不锁定。,例7.1 创建一个数据库认证的用户testuser1,11,图7.3 例7.1的运行结果,图7.3 例7.1的运行结果,12,例7.2 创建一个外部认证用户win_user(该用户应该已是操作系统上的一个合法用户)。以下脚本运行结果如图7.4所示。,CREATE USER win_user,IDENTIFIED EXTERNALLY DEFAULT,TABLESPACE users,TEMPORARY TABLESPACE temp,QUOTA 10M ON users;,创建完用户win_user之后,就可以首先用这个账号先登录操作系统,通过了操作系统的认证之后,在连接Oracle数据库时,不必再次输入用户名和密码,就可以直接进入数据库了。,例7.2 创建一个外部认证用户win_user(该,13,图7.4 例7.2的运行结果,图7.4 例7.2的运行结果,14,7.1.3 查看用户,使用企业管理器查看数据库用户信息的方法与创建用户的界面相同。另外,Oracle9i在数据字典中提供了如表7.1所示的视图可以查看数据库用户的信息。,表7.1 Oracle9i提供的用户信息视图,7.1.3 查看用户,15,例7.3 查看当前数据库所有用户的账号信息、配置文件及状态。以下脚本运行结果如图7.5所示。,SELECT USERNAME,PROFILE,ACCOUNT_STATUS,FROM DBA_USERS;,图7.5 例7.3的运行结果,例7.3 查看当前数据库所有用户的账号信息、配置文,16,7.1.4 修改用户,修改用户有两种方式:使用企业管理器或手工方式修改。,1.,使用企业管理器修改用户,启动企业管理器后,展开“安全性”“用户”节点,右击欲修改的用户,在快捷菜单中选择“查看/编辑详细资料”,则弹出“编辑用户”的对话框,可以对用户信息进行修改。,2使用手工方式修改用户,具有ALTER USER系统权限的用户可以使用ALTER USER命令来修改用户信息,语法如下:,ALTER USER 用户名,IDENTIFIED BY 密码,|EXTERNALLY|GLOBALLY AS 外部名,DEFAULT TABLESPACE 默认表空间名称,|TEMPORARY TABLESPACE 临时表空间名称,|QUOTA 数目K|M|UNLIMITED ON 表空间名称,|PROFILE 用户配置文件|PASSWORD EXPIRE,|ACCOUNT LOCK|UNLOCK|DEFAULT ROLE 默认角色;,7.1.4 修改用户,17,例7.4 修改用户TESTUSER1的密码为TRUE#1。以下脚本运行结果如图7.6所示。,ALTER USER TESTUSER1 IDENTIFIED BY TRUE#1;,图7.6 例7.4的运行结果,例7.4 修改用户TESTUSER1的密码为TRU,18,例7.5 修改用户WIN_USER的认证方式,从外部认证改为数据库认证,密码为DB_VERIFY。以下脚本运行结果如图7.7所示。,ALTER USER WIN_USER IDENTIFIED BY DB_VERIFY;,图7.7 例7.5的运行结果,例7.5 修改用户WIN_USER的认证方式,从外,19,7.1.5 删除用户,删除用户有两种方式:使用企业管理器或手工删除。,1.使用企业管理器删除用户,右击要删除的用户,在快捷菜单中选择“移去”,在弹出的确认删除用户的对话框中单击“是”按钮即可进行删除操作。,2.手工删除用户,拥有DROP USER系统权限的用户(如SYSTEM)可以删除其他数据库用户,语法如下:,DROP USER 用户名 CASCADE;,使