达梦数据库DM8安全管理_第1页
达梦数据库DM8安全管理_第2页
达梦数据库DM8安全管理_第3页
达梦数据库DM8安全管理_第4页
达梦数据库DM8安全管理_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、达梦数据库DM8 安全管理 DM8 安全管理 PAGE * ROMAN VI前言概述本文档主要介绍 DM 的安全体系结构,各安全管理模块的功能、原理及相关的数据库管理员和用户如何利用这些安全管理功能对数据库或自己的数据进行安全保护。读者对象本文档主要适用于 DM 数据库的:数据库管理员开发工程师测试工程师技术支持工程师通用约定在本文档中可能出现下列标志,它们所代表的含义如下:表 0.1 标志含义标志说明表示可能导致系统损坏、数据丢失或不可预知的结果。表示可能导致性能降低、服务不可用。可以帮助您解决某个问题或节省您的时间。表示正文的附加信息,是对正文的强调和补充。在本文档中可能出现下列格式,它们

2、所代表的含义如下:表 0.2 格式含义格式说明宋体表示正文。黑体标题、警告、注意、小窍门、说明等内容均采用黑体。Courier new表示代码或者屏幕显示内容。粗体表示命令行中的关键字(命令中保持不变、必须照输的部分)或者正文中强调的内容。语法符号中,表示一个语法对象。:=语法符号中,表示定义符,用来定义一个语法对象。定义符左边为语法对象,右边为相应的语法描述。|语法符号中,表示或者符,限定的语法选项在实际语句中只能出现一个。 语法符号中,大括号内的语法选项在实际的语句中可以出现 0N 次(N 为大于 0 的自然数),但是大括号本身不能出现在语句中。 语法符号中,中括号内的语法选项在实际的语句

3、中可以出现 01 次,但是中括号本身不能出现在语句中。关键字 关键字在 DM_SQL 语言中具有特殊意义,在 SQL 语法描述中,关键字以大写形式出现。但在实际书写 SQL 语句时,关键字既可以大写也可以小写。目录 HYPERLINK l _bookmark0 概述1 HYPERLINK l _bookmark1 数据库安全管理1 HYPERLINK l _bookmark2 DM 安全管理1 HYPERLINK l _bookmark3 DM 安全管理功能系统结构1 HYPERLINK l _bookmark4 安全管理功能简介2 HYPERLINK l _bookmark5 DM 安全版本

4、3 HYPERLINK l _bookmark6 一点说明3 HYPERLINK l _bookmark7 用户标识与鉴别4 HYPERLINK l _bookmark8 DM 的管理用户4 HYPERLINK l _bookmark9 如何创建用户6 HYPERLINK l _bookmark10 口令策略8 HYPERLINK l _bookmark11 用户身份验证模式10 HYPERLINK l _bookmark12 基于操作系统的身份验证10 HYPERLINK l _bookmark13 LDAP 身份验证10 HYPERLINK l _bookmark14 KERBEROS 身

5、份验证11 HYPERLINK l _bookmark15 如何修改用户信息12 HYPERLINK l _bookmark16 如何删除用户12 HYPERLINK l _bookmark17 自主访问控制14 HYPERLINK l _bookmark18 权限管理14 HYPERLINK l _bookmark19 数据库权限14 HYPERLINK l _bookmark20 对象权限16 HYPERLINK l _bookmark21 角色管理17 HYPERLINK l _bookmark22 角色的创建与删除18 HYPERLINK l _bookmark23 角色的启用与禁用2

6、1 HYPERLINK l _bookmark24 权限的分配与回收21 HYPERLINK l _bookmark25 数据库权限的分配与回收22 HYPERLINK l _bookmark26 对象权限的分配与回收23 HYPERLINK l _bookmark27 角色权限的分配与回收29 HYPERLINK l _bookmark28 强制访问控制31 HYPERLINK l _bookmark29 如何创建策略31 HYPERLINK l _bookmark30 策略的组成31 HYPERLINK l _bookmark31 创建、修改与删除策略32 HYPERLINK l _boo

7、kmark32 为策略添加组件34 HYPERLINK l _bookmark33 如何创建标记41 HYPERLINK l _bookmark34 创建标记42 HYPERLINK l _bookmark35 修改标记43 HYPERLINK l _bookmark36 删除标记44 HYPERLINK l _bookmark37 隐式创建标记45 HYPERLINK l _bookmark38 如何对表应用策略47 HYPERLINK l _bookmark39 对表应用策略47 HYPERLINK l _bookmark40 取消表策略48 HYPERLINK l _bookmark41

8、 如何对用户应用策略49 HYPERLINK l _bookmark42 设置用户等级50 HYPERLINK l _bookmark43 设置用户范围51 HYPERLINK l _bookmark44 设置用户组52 HYPERLINK l _bookmark45 清除用户策略53 HYPERLINK l _bookmark46 如何对会话应用策略54 HYPERLINK l _bookmark47 设置会话默认标记54 HYPERLINK l _bookmark48 设置会话行标记55 HYPERLINK l _bookmark49 清除会话标记55 HYPERLINK l _bookm

9、ark50 保存会话标记56 HYPERLINK l _bookmark51 读写控制规则56 HYPERLINK l _bookmark52 读访问规则57 HYPERLINK l _bookmark53 写访问规则58 HYPERLINK l _bookmark54 4.6.3 特权59 HYPERLINK l _bookmark55 扩展客体标记61 HYPERLINK l _bookmark56 对客体应用标记61 HYPERLINK l _bookmark57 修改客体标记62 HYPERLINK l _bookmark58 删除客体标记63 HYPERLINK l _bookmar

10、k59 一个强制访问控制的例子64 HYPERLINK l _bookmark60 相关数据字典表68 HYPERLINK l _bookmark61 5 审计70 HYPERLINK l _bookmark62 审计开关70 HYPERLINK l _bookmark63 审计的设置与取消70 HYPERLINK l _bookmark64 语句级审计71 HYPERLINK l _bookmark65 对象级审计75 HYPERLINK l _bookmark66 语句序列审计78 HYPERLINK l _bookmark67 关于审计设置的一些说明80 HYPERLINK l _boo

11、kmark68 审计文件管理80 HYPERLINK l _bookmark69 审计信息查阅82 HYPERLINK l _bookmark70 审计实时侵害检测84 HYPERLINK l _bookmark71 创建与删除实时侵害检测规则84 HYPERLINK l _bookmark72 实时侵害检测88 HYPERLINK l _bookmark73 审计告警工具 dmamon90 HYPERLINK l _bookmark74 审计分析91 HYPERLINK l _bookmark75 审计规则92 HYPERLINK l _bookmark76 审计日志查看器94 HYPERL

12、INK l _bookmark77 通信加密96 HYPERLINK l _bookmark78 存储加密97 HYPERLINK l _bookmark79 透明加密97 HYPERLINK l _bookmark80 全库加密98 HYPERLINK l _bookmark81 表空间透明加密98 HYPERLINK l _bookmark82 表列透明加密99 HYPERLINK l _bookmark83 其他数据库对象加密100 HYPERLINK l _bookmark84 半透明加密100 HYPERLINK l _bookmark85 非透明加密101 HYPERLINK l

13、_bookmark86 加密引擎114 HYPERLINK l _bookmark87 编程接口介绍115 HYPERLINK l _bookmark88 算法信息相关接口115 HYPERLINK l _bookmark89 加密过程相关接口116 HYPERLINK l _bookmark90 解密过程相关接口118 HYPERLINK l _bookmark91 散列过程相关接口120 HYPERLINK l _bookmark92 其他可选相关接口122 HYPERLINK l _bookmark93 接口库文件说明128 HYPERLINK l _bookmark94 编程实例128

14、 HYPERLINK l _bookmark95 资源限制150 HYPERLINK l _bookmark96 客体重用153 HYPERLINK l _bookmark97 登录用户名密码增强加密154 HYPERLINK l _bookmark98 DMKEY 工具的使用154 HYPERLINK l _bookmark99 启动 dmkey154 HYPERLINK l _bookmark100 查看 dmkey 参数155 HYPERLINK l _bookmark101 服务器端配置156 HYPERLINK l _bookmark102 客户端配置156 HYPERLINK l

15、_bookmark103 dm_svc.conf156 HYPERLINK l _bookmark104 11.3.2 DPI157 HYPERLINK l _bookmark105 启动数据库服务器157 HYPERLINK l _bookmark106 应用实例157 HYPERLINK l _bookmark107 附录 1 “三权分立”预设角色权限列表158 HYPERLINK l _bookmark108 附录 2 “四权分立”预设角色权限列表163 DM8 安全管理 PAGE 5概述数据库安全管理数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护。数据库系统的重要

16、指标之一是确保系统安全,以各种防范措施防止非授权使用数据库,主要通过数据库管理系统进行实现。数据库系统中一般采用用户标识与鉴别、存取控制以及密码存储等技术进行安全控制。数据库安全的核心和关键是其数据安全。数据安全指以保护措施确保数据的完整性、保密性、可用性、可控性和可审查性。由于数据库存储着大量的重要信息和机密数据,而且在数据库系统中大量数据集中存放,供多用户共享,因此,必须加强对数据库访问的控制和数据安全防护。DM 安全管理DM 安全管理功能系统结构DM 的安全管理就是为保护存储在 DM 数据库中的各类敏感数据的机密性、完整性和可用性提供必要的技术手段,防止对这些数据的非授权泄露、修改和破坏

17、,并保证被授权用户能按其授权范围访问所需要的数据。DM 作为安全数据库,提供了包括用户标识与鉴别、自主与强制访问控制、通信与存储加密、审计等丰富的安全功能,且各安全功能都可进行配置,满足各类型用户在安全管理方面不同层次的需求。DM 的安全管理功能体系结构如图 1.1 所示。 通信加密备份数据 通信加密网络 通信加密数据OS客体重用强制访问控制存储加密加密引擎资源限制DM服务器自主访问控制审计用户标识与鉴别通信加密图 1.1 DM 安全功能体系结构安全管理功能简介从图 1.1 可以看出 DM 的安全管理功能相当丰富与完善,各安全功能的简介见表 1.1。表 1.1 DM 安全管理功能简介安全功能简

18、介用户标识与鉴别可以通过登录帐户区别各用户,并通过口令方式防止用户被冒充自主访问控制通过权限管理,使用户只能访问自己权限内的数据对象强制访问控制通过安全标记,使用户只能访问与自己安全级别相符的数据对象审计审计人员可以查看所有用户的操作记录,为明确事故责任提供证据支持通信、存储加密用户可以自主的将数据以密文的形式存储在数据库中。也可以对在网络上传输的数据进行加密加密引擎用户可以用自定义的加密算法来加密自己的核心数据资源限制可以对网络资源和磁盘资源进行配额设置,防止恶意资源抢占客体重用实现了内存与磁盘空间的释放清理,防止信息数据的泄露DM 安全版本DM 数据库版本有标准版、企业版和安全版的区别,通

19、过产品的 License 进行区分。标准版和企业版在安全功能上没有区别,因此在本文中,将标准版和企业版统称为普通版本, 以与安全版本进行区分。标准版本提供的安全管理功能有:用户标识与鉴别、自主访问控制、审计、通信加密、存储加密、加密引擎、资源限制与客体重用;安全版本在普通版本的基础上,还提供“四权分立”安全机制和强制访问控制安全管理功能,能满足对安全管理有更高需求的数据库用户的要求。另外,在普通版本提供的安全功能中,有一些具体的更强的安全功能细节也仅在安全版本提供,将在后面具体介绍的地方一一指出。DM 安全版本在安装时与普通版本没有什么区别,在 DM 服务器安装过程中的验证 Key 文件步骤,

20、安装程序会验证 Key 文件信息是否为合法的安全版 Key,否则将无法使用安全版的安全特性,具体请参见DM8 安装手册。一点说明本书中的示例,除了具体给出建表语句的除外,其余使用的表均为 DM 示例库中的表。DM 示例库可在安装 DM 数据库时选择安装,其具体说明可参考DM8_SQL 语言使用手册。用户标识与鉴别用户标识与鉴别对试图登录数据库进行数据访问的用户进行身份验证,以确认此用户是否能与某一数据库用户进行关联,并根据关联的数据库用户的权限对此用户在数据库中的数据访问活动进行安全控制。DM 的管理用户在现实生活中,任何一个系统如果将所有的权利都赋予给某一个人,而不加以监督和控制,势必会产生

21、权利滥用的风险。从数据库安全角度出发,一个大型的数据库系统有必要将数据库系统的权限分配给不同的角色来管理,并且各自偏重于不同的工作职责,使之能够互相限制和监督,从而有效保证系统的整体安全。DM 数据库采用“三权分立”或“四权分立”的安全机制,将系统中所有的权限按照类型进行划分,为每个管理员分配相应的权限,管理员之间的权限相互制约又相互协助,从而使整个系统具有较高的安全性和较强的灵活性。可在创建 DM 数据库时通过建库参数 PRIV_FLAG 设置使用“三权分立”或“四权分立” 安全机制,此参数仅在 DM 安全版本下提供,即仅 DM 安全版本提供“四权分立”安全机制。缺省采用“三权分立”安全机制

22、。使用“三权分立”安全机制时,将系统管理员分为数据库管理员、数据库安全员和数据库审计员三种类型。在安装过程中,DM 数据库会预设数据库管理员账号 SYSDBA、数据库安全员账号 SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。使用“四权分立”的安全机制时,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四种类型,在“三权分立”的基础上,新增数据库对象操作员账户 SYSDBO,其缺省口令为 SYSDBO。各管理员应在安装过程中或安装完毕后立即修改缺省口令,避免因口令 泄漏造成的安全问题。数据库管理员(DBA)每个数据库至少需要一个 DBA

23、 来管理,DBA 可能是一个团队,也可能是一个人。在不同的数据库系统中,数据库管理员的职责可能也会有比较大的区别,总体而言,数据库管理员的职责主要包括以下任务:评估数据库服务器所需的软、硬件运行环境安装和升级 DM 服务器数据库结构设计监控和优化数据库的性能计划和实施备份与故障恢复数据库安全员(SSO)有些应用对于安全性有着很高的要求,传统的由 DBA 一人拥有所有权限并且承担所有职责的安全机制可能无法满足企业实际需要,此时数据库安全员和数据库审计员两类管理用户就显得异常重要,它们对于限制和监控数据库管理员的所有行为都起着至关重要的作用。数据库安全员的主要职责是制定并应用安全策略,强化系统安全

24、机制。数据库安全员SYSSSO 是 DM 数据库初始化的时候就已经创建好的,可以以该用户登录到 DM 数据库来创建新的数据库安全员。SYSSSO 或者新的数据库安全员都可以制定自己的安全策略,在安全策略中定义安全级别、范围和组,然后基于定义的安全级别、范围和组来创建安全标记,并将安全标记分别应 用到主体(用户)和客体(各种数据库对象,如表、索引等),以便启用强制访问控制功能。数据库安全员不能对用户数据进行增、删、改、查,也不能执行普通的 DDL 操作如创建表、视图等。他们只负责制定安全机制,将合适的安全标记应用到主体和客体,通过这种方式可以有效的对 DBA 的权限进行限制,DBA 此后就不能直

25、接访问添加有安全标记的数据, 除非安全员给 DBA 也设定了与之匹配的安全标记,DBA 的权限受到了有效的约束。数据库安全员也可以创建和删除新的安全用户,向这些用户授予和回收安全相关的权限,具体参见3.2.1 节。数据库审计员(AUDITOR)我们可以想象一下,某个企业内部 DBA 非常熟悉公司内部 ERP 系统的数据库设计,该系统包括了员工工资表,里面记录了所有员工的工资,公司的出纳通过查询系统内部员工工资表来发放工资。传统的 DBA 集所有权利于一身,可以很容易修改工资表,从而导致公司 DM8 安全管理 PAGE 7工资账务错乱。为了预防该问题,可以采用前面数据库安全员制定安全策略的方法,

26、避免DBA 或者其他数据库用户具有访问该表的权限。为了能够及时找到 DBA 或者其他用户的非法操作,在 DM 数据库中还可以在系统建设初期,由数据库审计员(SYSAUDITOR 或者其他由 SYSAUDITOR 创建的审计员)来设置审计策略(包括审计对象和操作),在需要时, 数据库审计员可以查看审计记录,及时分析并查找出幕后真凶。从上面的介绍中我们也可以看出,在 DM 数据库中,审计员的主要职责就是创建和删除数据库审计员,设置/取消对数据库对象和操作的审计设置,查看和分析审计记录等。数据库对象操作员(DBO)数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据

27、库对象(表、视图、存储过程、序列、包、外部链接等)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。如何创建用户数据库系统在运行的过程中,往往需要根据实际需求创建用户,然后为用户指定适当的权限。创建用户的操作一般只能由系统预设用户 SYSDBA、SYSSSO 和 SYSAUDITOR 完成, 如果普通用户需要创建用户,必须具有 CREATE USER 的数据库权限。创建用户的命令是 CREATE USER,创建用户所涉及的内容包括为用户指定用户名、认证模式、口令、口令策略、空间限制、只读属性以及资源限制。其中用户名是代表用户账号的标识符,长度为 1128 个字符。用户名可以用双

28、引号括起来,也可以不用,但如果用户名以数字开头,必须用双引号括起来。在 DM 中使用 CREATE USER 语句创建用户,具体的语法格式如下:CREATE USER IDENTIFIEDPASSWORD_POLICY ; := | := BY := EXTERNALLY | EXTERNALLY AS := 口令策略项的任意组合 := ACCOUNT LOCK | ACCOUNT UNLOCK := ENCRYPT BY := DISKSPACE LIMIT | DISKSPACE UNLIMITED := READ ONLY | NOT READ ONLY := LIMIT , := SE

29、SSION_PER_USER |CONNECT_IDLE_TIME |CONNECT_TIME | CPU_PER_CALL | CPU_PER_SESSION | MEM_SPACE | READ_PER_CALL | READ_PER_SESSION | FAILED_LOGIN_ATTEMPS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME :=| UNLIMITED := ALLOW_IP , := NOT_ALLOW_I

30、P , := | := ALLOW_DATETIME , := NOT_ALLOW_DATETIME , := | := TO := TO := MON | TUE | WED | THURS | FRI | SAT | SUNDM8 安全管理 PAGE 8 :=DEFAULT TABLESPACE 口令策略、外部身份验证、IP 限制以及时间限制仅在 DM 安全版本中才提供支持。资源限制子句将在第 9 章进行详细介绍。CREATE USER BOOKSHOP_USER IDENTIFIED BY BOOKSHOP_PASSWORD LIMIT CONNECT_TIME3;例如,创建用户名为 B

31、OOKSHOP_USER、口令为 BOOKSHOP_PASSWORD、会话超时为3 分钟的用户。口令策略0无策略1禁止与用户名相同2口令长度不小于 94至少包含一个大写字母(A-Z)8至少包含一个数字(0-9)16至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)用户口令最长为 48 字节,创建用户语句中的 PASSWORD POLICY 子句用来指定该用户的口令策略,系统支持的口令策略有:口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口令策略为 2+4=6 即可。除了在创建用户语句中指定该用户的口令策略,DM 的 INI 参数 PWD_POLI

32、CY 可以指定系统的默认口令策略,其参数值的设置规则与 PASSWORD POLICY 子句一致,缺省值为2。若在创建用户时没有使用 PASSWORD POLICY 子句指定用户的口令策略,则使用系统的默认口令策略。SELECT * FROM V$PARAMETER WHERE NAME=PWD_POLICY;系统管理员可通过查询 V$PARAMETER 动态视图查询 PWD_POLICY 的当前值。也可以通过使用客户端工具 Console 或调用系统过程 SP_SET_PARA_VALUE 重新设置 PWD_POLICY 的值。 DM8 安全管理 PAGE 10使用客户端工具 ConsleD

33、BA 用户在 DM 控制台 Console 工具中,配置 DM 数据库的 PWD_POLICY 参数值,如下图所示。图 2.1 使用 Console 工具配置 PWD_POLICY需要注意的是,Console 为脱机工具,对参数值的修改通过修改 dm.ini 文件中的参数值来进行,无论参数类型是静态还是动态,都需要重启 DM 服务器才能使新设置的参数值生效。使用系统过程DBA 用户也可以使用系统过程 SP_SET_PARA_VALUE 来配置 PWD_POLICY 参数值, 关于 SP_SET_PARA_VALUE 的详细介绍请参考DM8_SQL 语言使用手册。例如,将 PWD_POLICY

34、置为 8,同时修改文件和内存参数,由于 PWD_POLICY 为动态SP_SET_PARA_VALUE(1, PWD_POLICY,8);INI 参数,这样设置后新的参数值可以立即生效。DM 的 INI 参数都可以通过上述使用客户端工具 Console 或调用系统过程SP_SET_PARA_VALUE/SP_SET_PARA_DOUBLE_VALUE/SP_SET_PARA_STRING_VALUE 的方法来进行设置,后续不再具体描述。用户身份验证模式DM 提供数据库身份验证模式和外部身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令,即在创建或修改用户时指定用户口令,

35、用户在登录时输入对应口令进行身份验证;外部身份验证模式支持基于操作系统(OS)的身份验证、LDAP 身份验证和 KERBEROS 身份验证。基于操作系统的身份验证如要利用基于 OS 的身份验证,则在创建用户或修改用户时,要利用 IDENTIFIED EXTERNALLY 关键字。基于 OS 的身份验证分为本机验证和远程验证,本机验证在任何情况下都可以使用,而远程验证则需要将 DM 配置文件 dm.ini 的 ENABLE_REMOTE_OSAUTH 参数设置为 1(缺省为 0),表示支持远程验证;同时还要将 dm.ini 的 ENABLE_ENCRYPT 参数设置为 1(缺省为 1),表示采用

36、 SSL 安全连接。这两个参数均为静态参数,数据库管理员可以使用系统过程 SP_SET_PARA_VALUE 进行修改,但修改后需要重新启动 DM 服务器才能生效。用户登录时将用户名写为“/username”的形式,表示以操作系统身份验证模式登录,不需要输入口令。LDAP 身份验证DM 提供对 LDAP 的支持,主要利用 LDAP 服务器存储的账户数据信息,验证账户是否是数据库的合法用户。我们假定企业已经部署了 LDAP 服务器和 CA 服务器(或者花钱购买了证书认证)。要使用 LDAP 身份验证,首先要在 DM 配置文件 dm.ini 中添加参数 LDAP_HOST。此参数为 LDAP 数据

37、源所在机器的主库名,假如主库名为 ,则LDAP_HOST = 。LDAP 身份验证创建用户的语法如下:CREATE USER IDENTIFIED EXTERNALLY AS ;DM8 安全管理 PAGE 13“.”表示 2.2 节中创建用户语法从“”开始往后的语法部分。语法中的“用户 DN”指 LDAP 数据源中用户 DN,可以唯一标识每一个用户。例如,如果域名为 ,若以 Administrator 用户登录,按 DN 规范书写则 certificate_dn 为 cn=Administ

38、rator,cn=users,dc=dameng,dc=org。则创建用户语法可以写为:CREATE USER USER01 IDENTIFIED EXTERNALLY AS cn=Administrator,cn=users,dc=dameng,dc=org;Windows 操作系统下:Linux 操作系统下:CREATE USER USER01 IDENTIFIED EXTERNALLY AS cn=root, dc=dameng,dc=org;当用户使用 DM 客户端或接口登录 DM 数据库时,将用户名写为“/username”的形式, 则表示以 LDAP 验证方式进行登录,登录密码为

39、LDAP 数据源中创建用户时使用的密码。KERBEROS 身份验证KERBEROS 是为 TCP/IP 网络系统设计的可信的第三方认证协议,DM 支持 KERBEROS身份验证。我们假设用户已经正确配置了 KERBEROS 使用环境。KERBEROS 身份验证创建用户的语法如下:CREATE USER IDENTIFIED EXTERNALLY;“.”表示 2.2 节中创建用户语法从“”开始往后的语法部分。当用户使用 DM 客户端或接口登录 DM 数据库时,将用户名写为“/username”的形式,则表示以 KERBEROS 验证方式进行登录,不需要输入密码。如何修改用户信息为了防止不法之徒盗

40、取用户的口令,用户应该经常改变自己的口令。用户的口令不应 该是类似 12345,abcdef 这样简单的字符串,更不要指定为自己的生日或姓名,也不要指定为一个英文单词,因为这样的口令很容易被破解。一个好的口令应该包含大小写字母、数字、特殊符号在内的混合字符串。统计表明,一个口令中包含的成分越复杂,就越难破译。修改用户口令的操作一般由用户自己完成,SYSDBA、SYSSSO、SYSAUDITOR 可以无条件修改同类型的用户的口令。普通用户只能修改自己的口令,如果需要修改其他用户的口令,必须具有 ALTER USER 数据库权限。修改用户口令时,口令策略应符合创建该用户时指定的口令策略。使用 AL

41、TER USER 语句可修改用户口令。除口令外,这个语句还可以修改用户的口令策略、空间限制、只读属性以及资源限制等。当然,系统固定用户的系统角色和资源限制不能被修改。ALTER USER 的语法与创建用户的语法极为相似,具体语法格式如下:ALTER USER IDENTIFIED PASSWORD_POLICY ; 每个子句的具体语法参见创建用户语法说明ALTER USER BOOKSHOP_USER DISKSPACE LIMIT 20;例如,下面的语句修改用户 BOOKSHOP_USER 的空间限制为 20M。不论 DM 的 INI 参数 DDL_AUTO_COMMIT 设置为自动提交还是

42、非自动提交,ALTER USER 操作都会被自动提交。如何删除用户当一个用户不再需要访问数据库系统时,应将这个用户及时地从数据库中删除,否则可能会有安全隐患。删除用户的操作一般由 SYSDBA、SYSSSO、SYSAUDITOR 完成,他们可以删除同类型的其他用户。普通用户要删除其他用户,需要具有 DROP USER 权限。使用 DROP USER 语句删除语句,语法格式为:DROP USER RESTRICT | CASCADE;一个用户被删除后,这个用户本身的信息,以及它所拥有的数据库对象的信息都将从数据字典中被删除。如果在删除用户时未使用 CASCADE 选项(缺省使用 RESTRICT

43、 选项),若该用户建立了数据库对象,DM 将返回错误信息,而不删除此用户。如果在删除用户时使用了 CASCADE 选项,除数据库中该用户及其创建的所有对象被删除外,若其他用户创建的对象引用了该用户的对象,DM 还将自动删除相应的引用完整性约束及依赖关系。例如,假设用户 BOOKSHOP_USER 建立了自己的表或其他数据库对象,执行下面的语DROP USER BOOKSHOP_USER;句:将提示错误信息“试图删除被依赖对象BOOKSHOP_USER”。DROP USER BOOKSHOP_USER CASCADE;下面的语句则能成功执行,会将 BOOKSHOP_USER 所建立的数据库对象一

44、并删除。正在使用中的用户可以被其他具有 DROP USER 权限的用户删除,被删除的用户继续做操作或尝试重新连接数据库会报错。 DM8 安全管理 PAGE 19自主访问控制自主访问控制(DiscretionaryAccess Control,DAC)是这样一种访问控制方式:由数据库对象的拥有者自主决定是否将自己拥有的对象的部分或全部访问权限授予其他用户。也就是说,在自主访问控制下,用户可以按照自己的意愿,有选择地与其他用户共享他拥有的数据库对象。权限管理DM 数据库对用户的权限管理有着严密的规定,如果没有权限,用户将无法完成任何操作。用户权限有两类:数据库权限和对象权限。数据库权限主要是指针对

45、数据库对象的创建、删除、修改的权限,对数据库备份等权限。而对象权限主要是指对数据库对象中的数据的访 问权限。数据库权限一般由 SYSDBA、SYSAUDITOR 和 SYSSSO 指定,也可以由具有特权的其他用户授予。对象权限一般由数据库对象的所有者授予用户,也可由 SYSDBA 用户指定,或者由具有该对象权限的其他用户授权。数据库权限数据库权限是与数据库安全相关的非常重要的权限,其权限范围比对象权限更加广泛, 因而一般被授予数据库管理员或者一些具有管理功能的角色。数据库权限与 DM 预定义角色有着重要的联系,一些数据库权限由于权力较大,只集中在几个 DM 系统预定义角色中,且不能转授,我们将

46、在 中进行具体介绍。DM 提供了 100 余种数据库权限,表 3.1 列出了最常用的几种数据库权限。完整的数据库权限列表将在 中与 DM 预定义角色一起进行介绍。表 3.1 常用的几种数据库权限数据库权限说明CREATE TABLE在自己的模式中创建表的权限CREATE VIEW在自己的模式中创建视图的权限CREATE USER创建用户的权限CREATE TRIGGER在自己的模式中创建触发器的权限ALTER USER修改用户的权限ALTER DATABASE修改数据库的权限CREATE PROCEDURE在自己模式中创建存储程序的权限不同类型的数据库对象,其相

47、关的数据库权限也不相同。例如,对于表对象,相关的数据库权限包括:CREATE TABLE:创建表CREATE ANY TABLE:在任意模式下创建表ALTER ANY TABLE:修改任意表DROP ANY TABLE:删除任意表INSERT TABLE:插入表记录INSERT ANY TABLE:向任意表插入记录UPDATE TABLE:更新表记录UPDATE ANY TABLE:更新任意表的记录DELETE TABLE:删除表记录DELETE ANY TABLE:删除任意表的记录SELECT TABLE:查询表记录SELECT ANY TABLE:查询任意表的记录REFERENCES TA

48、BLE:引用表REFERENCES ANY TABLE:引用任意表DUMP TABLE:导出表DUMP ANY TABLE:导出任意表GRANT TABLE:向其他用户进行表上权限的授权GRANT ANY TABLE:向其他用户进行任意表上权限的授权而对于存储程序对象,其相关的数据库权限则包括:CREATE PROCEDURE:创建存储程序CREATE ANY PROCEDURE:在任意模式下创建存储程序DROP PROCEDURE:删除存储程序DROP ANY PROCEDURE:删除任意存储程序EXECUTE PROCEDURE:执行存储程序EXECUTE ANY PROCEDURE:执行

49、任意存储程序GRANT PROCEDURE:向其他用户进行存储程序上权限的授权GRANT ANY PROCEDURE:向其他用户进行任意存储程序上权限的授权需要说明的是,表、视图、触发器、存储程序等对象为模式对象,在默认情况下对这些对象的操作都是在当前用户自己的模式下进行的。如果要在其他用户的模式下操作这些类型的对象,需要具有相应的 ANY 权限。例如,要能够在其他用户的模式下创建表,当前用户必须具有 CREATE ANY TABLE 数据库权限,如果希望能够在其他用户的模式下删除表, 必须具有 DROP ANY TABLE 数据库权限。对象权限对象权限主要是对数据库对象中的数据的访问权限,主

50、要用来授予需要对某个数据库对象的数据进行操纵的数据库普通用户。表 3.2 列出了主要的对象权限。表 3.2 常用的对象权限数据库对象类型对象权限表视图存储程序包类类型序列目录域SELECTINSERTDELETEUPDATEREFERENCESDUMPEXECUTEREADWRITEUSAGESELECT、INSERT、DELETE 和 UPDATE 权限分别是针对数据库对象中的数据的查询、插入、删除和修改的权限。对于表和视图来说,删除操作是整行进行的,而查询、插入和修改却可以在一行的某个列上进行,所以在指定权限时,DELETE 权限只要指定所要访问的表就可以了,而 SELECT、INSERT

51、 和 UPDATE 权限还可以进一步指定是对哪个列的权限。表对象的 REFERENCES 权限是指可以与一个表建立关联关系的权限,如果具有了这个权限,当前用户就可以通过自己的一个表中的外键,与对方的表建立关联。关联关系是通过主键和外键进行的,所以在授予这个权限时,可以指定表中的列,也可以不指定。存储程序等对象的 EXECUTE 权限是指可以执行这些对象的权限。有了这个权限,一个用户就可以执行另一个用户的存储程序、包、类等。目录对象的 READ 和 WRITE 权限指可以读或写访问某个目录对象的权限。域对象的 USAGE 权限指可以使用某个域对象的权限。拥有某个域的 USAGE 权限的用户可以在

52、定义或修改表时为表列声明使用这个域。当一个用户获得另一个用户的某个对象的访问权限后,可以以“模式名.对象名”的形式访问这个数据库对象。一个用户所拥有的对象和可以访问的对象是不同的,这一点在数据字典视图中有所反映。在默认情况下用户可以直接访问自己模式中的数据库对象,但是要访问其他用户所拥有的对象,就必须具有相应的对象权限。对象权限的授予一般由对象的所有者完成,也可由 SYSDBA 或具有某对象权限且具有转授权限的用户授予,但最好由对象的所有者完成。角色管理角色是一组权限的组合,使用角色的目的是使权限管理更加方便。假设有 10 个用户, 这些用户为了访问数据库,至少拥有 CREATE TABLE、

53、CREATE VIEW 等权限。如果将这些权限分别授予这些用户,那么需要进行的授权次数是比较多的。但是如果把这些权限事先放在一起,然后作为一个整体授予这些用户,那么每个用户只需一次授权,授权的次数将大大减少,而且用户数越多,需要指定的权限越多,这种授权方式的优越性就越明显。这些事先组合在一起的一组权限就是角色,角色中的权限既可以是数据库权限,也可以是对象权限, 还可以是别的角色。为了使用角色,首先在数据库中创建一个角色,这时角色中没有任何权限。然后向角色中添加权限。最后将这个角色授予用户,这个用户就具有了角色中的所有权限。在使用角色的过程中,可以随时向角色中添加权限,也可以随时从角色中删除权限

54、,用户的权限也随之改变。如果要回收所有权限,只需将角色从用户回收即可。角色的创建与删除DM 预定义角色在 DM 数据库中有两类角色,一类是 DM 预设定的角色,一类是用户自定义的角色。DM 提供了一系列的预定义角色以帮助用户进行数据库权限的管理。预定义角色在数据库被创建之后即存在,并且已经包含了一些权限,数据库管理员可以将这些角色直接授予用户。在“三权分立”和“四权分立”机制下,DM 的预定义角色及其所具有的权限是不相同的。表 3.3 和表 3.4 分别列出了“三权分立”和“四权分立”机制下常见的系统角色及其简单介绍,完整的预定义角色权限列表请参见附录 1 和附录 2。表 3.3 “三权分立”

55、常见的数据库预设定的角色角色名称角色简单说明DBADM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权, 只有 DBA 才可以创建数据库结构RESOURCE可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构PUBLIC不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵DB_AUDIT_ADMIN数据库审计的最高权限集合,可以对数据库进行各种审计操作,并创建新的审计用户DB_AUDIT_OPER可以对数据库进行各种审计操作,但不能创建新的审计用户DB_AUDIT_PUBLIC不能进行审计设置,但可以查询审计相关字典表DB_POLICY_ADMI

56、N数据库强制访问控制的最高权限集合,可以对数据库进行强制访问控制管理,并创建新的安全管理用户DB_POLICY_OPER可以对数据库进行强制访问控制管理,但不能创建新的安全管理用户DB_POLICY_PUBLIC不能进行强制访问控制管理,但可以查询强制访问控制相关字典表表 3.4 “四权分立”常见的数据库预设定的角色角色名称角色简单说明DBA拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构RESOURCE可以创建和删除角色PUBLIC只能查询相关的数据字典表DB_AUDIT_ADMIN数据库审计的最高权限集合,可以对数据库进行各种审计操作,并创建新的审计用户DB_AUDIT_OPE

57、R可以对数据库进行各种审计操作,但不能创建新的审计用户DB_AUDIT_PUBLIC不能进行审计设置,但可以查询审计相关字典表DB_POLICY_ADMIN数据库强制访问控制的最高权限集合,可以对数据库进行强制访问控制管理,并创建新的安全管理用户DB_POLICY_OPER可以对数据库进行强制访问控制管理,但不能创建新的安全管理用户DB_POLICY_PUBLIC不能进行强制访问控制管理,但可以查询强制访问控制相关字典表DB_OBJECT_ADMIN可以在自己的模式下创建各种数据库对象并进行数据操纵,也可以创建和删除非模式对象DB_OBJECT_OPER可以在自己的模式下创建数据库对象并进行数

58、据操纵DB_OBJECT_PUBLIC不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵我们可以认为“三权分立”安全机制将用户分为了三种类型,“四权分立”安全机制将用户分为了四种类型,每种类型又各对应三种预定义角色。如:DBA 类型对应 DBA、RESOURCE、PUBLIC 预定义角色;AUDITOR 对应 DB_ADUTI_ADMIN、DB_AUDIT_OPER、DB_AUDIT_PUBLIC 预定义角色;SSO 对应 DB_POLICY_ADMIN、DB_POLICY_OPER、DB_POLICY_PUBLIC 预定义角色;DBO 对应 DB_OBJECT_ADMIN、DB_OB

59、JECT_OPER、DB_OBJECT_PUBLIC 预定义角色。初始时仅有管理员具有创建用户的权限,每种类型的管理员创建的用户缺省就拥有这种类型的 PUBLIC 预定义角色,如 SYSAUDITOR 新创建的用户缺省就具有DB_AUDIT_PUBLIC 角色。之后管理员可根据需要进一步授予新建用户其他预定义角色。管理员也可以将“CREATE USER”权限转授给其他用户,这些用户之后就可以创建新的用户了,他们创建的新用户缺省也具有与其创建者相同类型的 PUBLIC 预定义角色。限制 DBA 的“ANY”权限从附录 1 和附录 2 的表中我们可以看到,缺省情况下,DBA 角色拥有许多的“ANY

60、”权限,如 DROP ANY TABLE、INSERT ANY TABLE 等等。在 DM 安全版本下,提供了一种DM8 安全管理 PAGE 20限制 DBA 的“ANY”权限的方法。只有具有 DB_POLICY_ADMIN 角色的用户才能限制 DBA的“ANY”权限,通过执行下面的系统过程来实现:VOIDSP_RESTRICT_DBA(FLAGINT);参数 FLAG 置为 1 表示限制 DBA 的“ANY”权限,此过程执行后所有的 DBA 用户将不再具有“ANY”权限;FLAG 置为 0 表示不限制 DBA 的“ANY”权限。创建角色具有“CREATE ROLE”数据库权限的用户也可以创建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论