根据《循序渐进DB2》(牛新庄)第13章内容整理

  DB2中有3种主要的安全机制,可以帮助DBA实现数据库安全计划:

  • 身份认证(authentication)
  • 权限(authorization)
  • 特权(privilege)

提出问题
  就目前接触过的数据库来说,大多是在数据库中添加用户,比方Oracle的tiger账户,MySQL的user表,SQL Server我记得也是数据库添加账户的,那Postgresql是在pg_hba.conf中设置访问权限,在数据库中Create user的,但是DB2有很大的不同哦。

  然后就是哪个用户可以访问哪些表,grant这些操作在DB2中又是如何定义的呢?用户、用户权限如何查看呢?
  远程登录怎么设置?怎么登录?
  带着这些问题来往下看:

身份认证(authentication)

  身份认证是用户在尝试访问DB2实例或数据库时遇到的第一道安全闸门。身份认证就是使用安全机制验证所提供用户ID和口令的过程。用户和密码身份认证由DB2外部的设施管理,比如操作系统、域控制器或者Kerberos安全系统。这和其他数据库管理系统是不同的,如Oracle、Infomix、Sybase和SQL Server,后者既可以在数据库本身定义和验证用户账户,也可以在操作系统中完成(安装podtgresql是创建的postgres用户既是操作系统账户也是数据库账户)。外部安全性服务对希望访问DB2服务器的用户进行身份认证,DB2外部的安全性软件负责处理身份认证。当成功校验了用户ID和口令后,内部DB2进程接管控制,并确保用户有权执行所请求的操作。

  DB2是没有用户的,DB2所有的用户都是操作系统用户,这是由于历史原因造成的。

  一旦用户ID和口令作为实例附件或数据库 连接请求的一部分明确的提供给DB2,DB2就会尝试使用该外部安全设施验证用户ID和口令。
  实际的认证位置由DB2实例参数AUTHENTICATION的值决定。有不同的身份认证方案,包括:

  • 让用户早DB2服务器上认证(使用服务器的安全设施)
  • 在客户机上认证(允许“单点登录”访问)
  • 使用Kerbose安全设施认证
  • 使用用户定义的通用安全服务(Generic Security Service,GSS)插件认证
    其他的身份认证选项还包括:当用户名和口令以及数据在客户机和服务器之间的网络上传递时进行加密。为AUTHENTICATION参数选择的值依赖于具体环境和本地安全策略。
[db2inst1@db22 ~]$ db2 get dbm cfg | grep -i authGSS Plugin for Local Authorization    (LOCAL_GSSPLUGIN) = Server Connection Authentication          (SRVCON_AUTH) = NOT_SPECIFIEDDatabase manager authentication        (AUTHENTICATION) = SERVER     --使用服务器的安全设施Alternate authentication           (ALTERNATE_AUTH_ENC) = NOT_SPECIFIEDCataloging allowed without authority   (CATALOG_NOAUTH) = NOTrusted client authentication          (TRUST_CLNTAUTH) = CLIENTBypass federated authentication            (FED_NOAUTH) = NO

权限(authorization)

  权限涉及将DB2角色赋予用户和/或组。每一种角色具有一定级别的权限,对特定数据库和和/或其中的对象执行某些命令。DB2中包括以下7种不同角色或权限:

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
  • DBADM
  • SECADM
  • LOAD
width: 100px;

}

权限级别 说明和用途
SYSADM DB2 UDB 中最高的管理权限级别,具有SYSADM权限的用户可以运行实例程序,发出数据库和数据库管理器命令,以及访问这个数据库管理器实例中任何数据库中任何数据表中的数据。
提供控制这个数据库实例中所有数据库对象的能力,包括数据库、表、视图、索引、包、模式、服务器、别名、数据类型、函数、过程、触发器、表空间、数据库分区组、缓冲池和事件监视器
该权限需要对使用程序和数据的完全访问权的DB2 UDB管理员使用
我们安装实例时使用的账户db2inst1是系统管理员,拥有最高管理权限级别SYSADM
SYSCTRL 最高的系统控制权限级别。提供对数据库管理器实例机器数据库执行维护和管理操作的能力
不允许直接访问数据库中的数据。具有连接数据库的隐式特权,并可以执行具有SYSMAINT和SYSMON权限的用户能够执行的功能。该权限供管理一个包含敏感数据的数据库管理器实例的用户使用
SYSMAINT 次高的系统控制权限级别。提供对数据库管理器实例机器数据库执行维护和管理操作的能力
不允许直接访问数据库中的数据。具有连接数据库的隐式特权,并可以执行具SYSMON权限的用户能够执行的功能。该权限供维护一个包含敏感数据的数据库管理器实例的用户使用
SYSMON
系统监视
提供获得数据库管理器实例及其数据库的快照的能力。如果一个数据库管理器实例中的数据库包含敏感数据,而管理用户只需要通过快照监控数据来进行问题判断,这时候就可以给用户授予SYSMON权限。该权限不允许改变系统资源的使用
DBADM 对于一个实例中的一个特定数据库的次高管理权限级别。允许 用户允许某些实用程序,发出数据库命令以及访问数据库中的任何表中的数据。该权限供需要完全访问数据库对象和数据,但是不需要完整的维护权限的管理员使用
LOAD 允许用户调用LOAD实用程序。根据LOAD操作的模式,用户还需要LOAD操作目标上的insert和update特权。该权限供只想批量装载一组新数据的用户使用

特权(privilege)

就是具体表上的insert、update以及create db的权限了

安全层次

  当一个用户在客户端发出一条“select * from tb1”SQL语句时,首先要连接数据库,在连接数据库时需要提供用户名和密码。用户名和密码是在数据库之外认证的,这需要用到操作系统或外部安全插件。例如在AIX上是使用/etc/password 验证用户名,使用/etc/security/passwd 来验证密码。这是操作系统层次。
  操作系统之下是实例级别的权限,实例之下是数据库级别的权限,用户要访问表tb1,也必须在tb1上有特定的select特权。这个就是整个DB2的安全机制实现方式。

DB2安全(一)——概述相关推荐

  1. 诊断DB2 Java应用程序的性能问题

    问题诊断和 DB2 架构简介 本文的目的是帮助应用程序开发人员或数据库管理员排除和诊断在部署 Java 应用程序时可能遇到的常见性能问题.其中包括常见的应用程序开发问题,例如挂起或者响应缓慢. 很好地 ...

  2. mysql db2 性能_确定DB2 Java应用程序的性能问题

    问题确定和DB2体系结构简介 本文的目的是帮助您作为应用程序开发人员或数据库管理员,对您在部署Java应用程序时可能遇到的常见性能问题进行故障排除和诊断. 这些包括常见的应用程序开发问题,例如挂起或响 ...

  3. 最新炼数成金Oracle 12C RAC集群原理与管理实战

    注意:Oracle 12C RAC部分课程,暂时缺少两集,如有补充会及时更新;介意的朋友先不要下载 但是其中另一套课程,来自三位DBA大牛的技术分享,非常值得听一听 ===============课程 ...

  4. 用db2look命令查看DB object的DDL语句

    环境 Ubuntu 22.04 Db2 V11.5 概述 使用 db2look 命令,可以查看DB object的DDL语句,也可以生成 UPDATE DATABASE CONFIGURATION , ...

  5. linux java db2,[转载]DB2 UDB for Linux, UNIX 和 Windows 中的 Java 开发概述: V8.1 更新版

    DB2 UDB for Linux, UNIX 和 Windows 中的 Java 开发概述:V8.1 更新版 DB2 UDB V8 中为了支持 Java 已经做了很多更改.本文总结了所有这些更改,同 ...

  6. DB2 9 使用拓荒(733 检讨)认证指南,第 2 部分: DB2 数据操作(6)

    学习根柢根底观观点 操作游标 游标措置概述 在本节中,您将更进一步看到若安在嵌入式 SQL 使用次第中运用游标.异常,根柢根底的步骤照旧是声明.翻开.获取.更新/删除(可选)和封闭. 为了赞助看法游标 ...

  7. 第01章_数据库概述

    第01章_数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上 ...

  8. jdbc驱动_JDBC概述和CRUD

    第八章 JDBC的简介 8.1 简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 ...

  9. mysql简单概述_MySQL入门很简单: 1 数据库概述

    1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...

最新文章

  1. 成果展示 | 清华大学大数据研究中心——医工结合科研创新支持计划
  2. [转载] zookeeper 分布式锁服务
  3. 使用oracle和sqlserver的几点区别【转】
  4. List,Set和Map详解及其区别和他们分别适用的场景
  5. Python可以减少代码量?我不信
  6. php开启慢查询,MySQL开启慢查询功能
  7. 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)
  8. DFS(连通块) HDU 1241 Oil Deposits
  9. Unity3D mac版汉化教程
  10. 视频教程-汇编语言程序设计-其他
  11. JPA 中@Enumerated
  12. office表格怎么冻结前两行_冻结Excel表格中多行或多列的方法
  13. 电脑给手机开热点后,手机可以上网,但是电脑却不能上网了
  14. Hibernate逍遥游记-第13章 映射实体关联关系-005双向多对多(使用组件类集合\composite-element\)...
  15. JAVA并发编程:悲观锁与乐观锁
  16. 消失的中国互联网元老陈天桥:为神经科学捐助10亿,不担心机器人崛起
  17. Directory 与 DirectoryInfo 的区别
  18. TypeScrpt 学习指南
  19. 华硕B250主板组装机安装win7及office2010
  20. java语音播报源代码_详解Android 语音播报实现方案(无SDK)

热门文章

  1. [FLASH_AS]Flash as3 addEventListener事件监听传递参数
  2. Forefront Security For Exchange的反病毒测试
  3. 剑指offer 算法 (综合)
  4. 杭电多校第三场-H-Game
  5. 基于 Storyboard 多种方式的页面跳转、参数传递
  6. 【Ray Tracing The Next Week 超详解】 光线追踪2-6 Cornell box
  7. 阅读笔记1(面试题功能测试-自动化提升效率)
  8. 32位汇编基础_内存_每个应用进程都会有自己独立的4GB内存空间
  9. iOS快速集成检查更新
  10. 软件工程——理论、方法与实践 第六章