Oracle用户管理与安全性

Oracle用户管理与安全性

 

7.1 目标

本节中,您能够:

  • 建立和管理用户
  • 授予用户执行数据库操作的权限
  • 建立和管理角色

 

7.2 用户与安全性简介

 

用户会使用您在数据库所建立的用户账户来和数据库连接。用户账户是透过使用者名称来加以识别,同时也定义了下列用户属性:

  • 认证方法
  • 供数据库认证的密码
  • 临时表空间:用来排序操作
  • 预设表空间:当未明确指定表空间时,用于建立表
  • 表空间配额:表空间中的用户表可消耗的空间量
  • 账户锁定

用户经过授权之后便可连接到数据库并在数据库中执行操作,例如查看数据和建立表等。

 

当您建立数据库时,会自动建立几个用户账户。”数据库配置助手”建立的所有数据库中,都包含SYS、SYSTEM、SYSMAN及DBSNMP用户账户。而依照您所安装的功能选项,会建立额外的管理用户(Administrative user)。许多管理用户的账户一开始都会使用过期的密码加以锁定。锁定这些账户的用意是要避免熟悉Oracle所提供密码的人员未经授权的访问操作。您必须负责解除锁定这些账户,然后在重新设定。

 

您可以建立额外的用户账户来作为数据库表的拥有者。您也可以建立用户账户,以让使用者能登入数据库。

 

7.3 Oracle定义的用户

当您建立数据库时,会同时建立一些用户并安装某些特定的选项。下列是一些会建立的用户:

  • DBSNMP: Oracle Enterprise Manager的”管理代理程序(Management Agent)”组件会使用它来管理与监控数据库。
  • SYS: 是数据库的管理员账户。数据库的数据字典(Data dictionary)相关的所有基础表与视图都储存在sys schema中。
  • SYSMAN: EM可使用它来执行数据库操作。
  • SYSTEM: 是数据库的管理员账户,拥有显示管理信息的表与视图,以及用于各种Oracle选项与工具的内部表和视图。
  • 范例schema用户(HR, OE, SH): “人力资源(HR)”schema是基本的关闭式数据库shema。”订单录入(OE)”schema则建立于纯粹关闭的HR schema之上,并含有部分表关联及表导向的功能。而”销售历史记录(SH)”schema则是关闭式星状shema(Star schema)范例。

 

7.4 建立用户

您可以按下列步骤使用Enterprise Manager定义新的用户:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【用户(Users)】。
  2. 在【用户(Users)】页面中,按一下【创建(Create)】。

之后会显示”创建用户(Create User)”的页面和其【一般信息(General)】页签。您可以按一下【一般信息(General)】的页签临近的页签,来访问其他特性页签。

注意: 您可使用与现有用户相同的属性来建立用户,只要选择该用户,从【操作(Actions)】功能表中选择【类似创建(Create Like)】,再按一下【开始(Go)】。

  1. 在【名称(Name)】栏位中,输入用户名称。
  2. 从【概要文件(Profile)】下拉式清单中,选择DEFAULT。
  3. 选择预设值【口令(Password)】做为认证方式。
  4. 在【输入口令(Enter Password)】栏位与【确认口令(Confirm Password)】栏位,输入您选择的密码。
  5. 按一下【默认表空间(Default Tablespace)】栏位旁的手电筒图示,然后选择该表空间作为使用者的预设表空间。
  6. 按一下【临时表空间(Temporary Tablespace)】栏位旁的手电筒图示,然后选择TEMP表空间。
  7. 在【状态(Status)】部分,选择【未锁定(Unlocked)】。
  8. 按一下【限额(Quotas)】来访问限额页签。请为使用者可建立表的表空间输入限额量。您可从【限额】列表中选择【无限制(Unlimited)】, 或选择【值(Value)】并输入特定值。
  9. 按一下【确定(OK)】。在【用户(Users)】页面会显示确认建立的信息,接着就可以在【用户(User)】清单上看到新的用户了。

 

7.5 修改用户

您可以使用Enterprise Manager来修改或编辑用户的属性。

您必须先授予限额给在数据库中建立表、簇、物化视图、索引及其他对象的用户。限额限制了用户可在表空间中消耗多少空间。您可以授予用户在表中的特定空间量限额或无限制的限额。

如果要变更用户的表空间限额,请执行下列步骤:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【用户(Users)】。
  2. 选择使用者,然后按一下【编辑(Edit)】。
  3. 您可在【编辑用户(Edit)】特性页签的【一般信息(General)】页签中变更认证方式、默认表空间以及临时表空间。按一下【限额(Quotas)】页签,以变更用户的表空间配额。
  4. 按一下【应用(Apply)】。

 

7.6 删除用户

当您删除某位用户时,会发生下列状况:

  • 用户定义被删除。
  • 用户失去与数据库连接的能力。
  • 所有属于用户的对象都被删除。

 

当您删除某位用户时,该用户拥有的所有schema对象都会从数据库中删除,其中包含表与索引。如果您必须维护某位用户的对象,并想拒绝该用户访问数据库,则除了删除用户之外还有其它变通的方法,就是锁定该用户的账户,或是让该用户的密码过期。

使用Enterprise Manager,您可以执行下列步骤来删除用户:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【用户(Users)】。
  2. 选择用户,然后按一下【删除(Delete)】。
  3. 出现确认页面。按一下【是(Yes)】,确认删除该用户。

 

7.7 锁定和解除锁定账户

您可以设定用户账户在连续失败的登陆尝试达到一定次数后便自动锁定。您也可以设定该账户锁一定时间之后解除锁定,或是需要数据库管理员接入来解除锁定。

您也可以手动锁定账户,让账户必须明确的经由数据库管理员介入来解除锁定。

注意: 许多Oracle提供的数据库用户在数据库建立后就已经锁定。您会在稍后部分了解如何解除锁定账户。

 

7.8 设定密码的有效期限

您可以指定密码的使用期限,而超过此期限的密码就会过期,用户必须先加以变更,之后才能登入数据库。您可以建立一段宽限期(Grace period),这样用户在登入数据库时,就会收到变更密码的警告信息。如果用户在宽限期结束前仍未更改密码,账户就会被锁定,而用户将无法登陆数据库,一直到用户账户解除锁定为止。

您也可以将密码状态设定为【过期】。这样一来,使用者在登陆数据库之前就必须先重设密码。

注意:密码管理功能需透过使用设定文件来启用。如需关于设定文件管理的详细信息,请参阅Oracle Database Security Guide。

 

7.9 解除锁定用户账户和重设密码

您可以在安装过程和数据库建立期间,解除锁定和重设许多Oracle提供的数据库用户账户。

如果您未在当时解除锁定用户账户,您可以按照下列步骤来解除锁定用户和重设密码:

  1. 在【用户(Users)】页面选择用户,然后按一下【编辑(Edit)】,画面上会显示【编辑用户(Edit Users)】页面。
  2. 在【输入密码(Enter Password)】栏位与【确认密码(Confirm Password)】栏位中输入新密码。
  3. 在【状态(Status)】部分,选择【已取消锁定(Unlocked)】,以解除锁定用户账户。
  4. 按一下【应用(Apply)】以重设密码和解除锁定用户账户,画面上会显示相关确认信息。

 

7.10 管理权限与角色

 

权限与角色是用来控制用户对数据的存取以及可执行的SQL语句类型。权限共有下列两种类型:

  • 系统权限(System privilege): 允许用户执行特定的数据库操作。 CREATE TABLE就是一项系统权限,可让用户在数据库建表。
  • 对象权限(Object privilege): 控制特定数据库对象的存取。SELECT TABLE就是一项对象权限,可让用户从数据库的特定表中查询数据行。

 

角色是用来将权限与其他角色组合在一起,以便将多个权限与角色授予给用户。数据库中会有一些预先定义的角色。此外,您可以针对数据库现有的操作及对象来建立适当的角色。

 

7.11 管理权限

  • SYSDBA与SYSOPER权限
  • 认证方法:

– 操作系统

– 密码文件

 

执行建立数据库、启动或关闭实例等等的基本数据库操作所需的管理权限,是通过SYSDBA与SYSOPER两项特殊的系统权限来授予的。

您也可以将SYSDBA与SYSOPER权限想成是能让您执行特定数据库操作的连接类型,而这样的权限并不能用其他方式来授予。SYSDBA与SYSOPER系统权限可允许在数据库未开启的状况下存取数据库实例。

 

这些权限的控制操作是完全独立于数据库之外进行。下列方法可以用来认证数据库管理员:

  • 操作系统(OS)认证
  • 密码文件

您要以本地管理的方式在数据库所在的同一个服务器上管理数据库,或是想从单一远端从属端来管理许多不同的数据库,都会影响您的决定。当不是安全的连接时,您必须使用密码文件来管理远端的数据库。

如需有关建立密码文件与设定操作系统认证的详细信息,请参阅Oracle Database Administrator’s Guide.

 

7.12 授予权限

如果要使用Enterprise Manager授予权限,请执行下列步骤:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【用户(Users)】链接。
  2. 选择用户,然后按一下【编辑(Edit)】按钮。会出现【编辑用户(Edit User)】页面。
  3. 按一下【系统权限(System Privileges)】页签,画面上会显示目前指定给这个用户的系统权限清单。
  4. 按一下【编辑列表(Edit List)】。会出现【修改系统权限(Modify System Privileges)】页面。
  5. 选择需要的权限,然后按一下【移动(Move)】以将它新增到【选取的系统权限(Selected System Privileges)】清单。
  6. 按一下【确定(OK)】,会回到【编辑用户(Edit User)】页面。
  7. 按一下【应用(Apply)】将系统权限授予用户,画面上会显示更新确认的信息。

注意:对象权限也是以类似的方式来加以授权。

 

7.13 查看角色

您可以使用角色将权限与其他角色组合在一起,以便将多个权限与角色授予给用户。

您可以使用Enterprise Manager并按照下列步骤来查看现有角色:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【角色(Roles)】链接。
  2. 画面上会显示【角色(Roles)】页面。您只要选择一个角色并按一下【查看(View)】, 就能查看该角色。

 

7.14 建立和修改角色

您可以使用Enterprise Manager, 然后执行下列步骤来定义新的角色:

  1. 在【服务器(Server)】页面的【安全性(Security)】区域中,按一下【角色(Roles)】。
  2. 按一下【创建(Create)】。
  3. 在【创建角色(Create Role)】页面,输入新角色的名称。
  4. 按一下【角色(Roles)】>【系统权限(System Privileges)】或【对象权限(Object Privileges)】页签,为新角色新增必要权限。
  5. 点【确定(OK)】开始创建。

 

您可以执行下列步骤来修改现有的角色:

  1. 在【服务器(Server)】页面的【安全(Security)】区域中,按一下【角色(Roles)】。
  2. 选择要修改的角色,再按一下【编辑(Edit)】。画面会出现【编辑角色: 角色名称(Edit Role: role name)】页面。此页面中有连接到下列特性页面的页签:【角色(Roles)】、【系统权限(System Privileges)】、【对象权限(Object Privileges)】、【用户组(Consumer Groups)】。针对要新增到角色的权限,按一下适当的权限类型页面。
  3. 按一下【修改(Modify)】,选择角色或权限。

注意:您也可以从角色中删除权限及角色。

 

您也可以在【角色(Roles)】页面中删除角色。

 

7.15 授予和撤销角色

您可以使用Enterprise Manager,按照下列步骤来授予角色:

  1. 在【服务器(Server)】页面【安全(Security)】区域中,按一下【用户(Users)】连接。
  2. 查找并选择用户,按一下【编辑(Edit)】按钮。画面上会出现【编辑用户(Edit User)】页面。
  3. 按一下【角色(Roles)】页签,会出现目前指定给用户的角色清单。
  4. 按一下【编辑列表(Edit List)】, 会出现【修改角色(Modify Roles)】页面。
  5. 选择需要的角色然后按一下【移动(Move)】, 将它加到【所选角色(Selected Roles)】清单。

 

  1. 按一下【确定(OK)】, 会回到【编辑用户(Edit User)】页面。
  2. 按一下【应用(Apply)】将角色授予给用户,画面上会显示更新确认的信息。

您也可以从【编辑用户(Edit User)】页面访问【角色(Roles)】,来撤销或移除用户角色。按一下【移去(Remove)】,即可撤销用户角色。

 

7.16 总结

在本节中,您应该已学会如何:

建立和修改用户

授予用户权限与角色,让他们能够执行数据库操作和在数据库中建立对象。

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *