数据库安全管理是指采取各种安全措施对数据库及其相关文件和数据进行保护。DM达梦数据库提供了包括用户标识与鉴别、自主与强制访问控制、通信与存储 加密、审计等丰富的安全功能。达梦数据库 的安全管理功能体系结构如图所示:
达梦技术社区 https://eco.dameng.com
从数据库的使用角度的不同,使用者关心的安全管理重点也不相同,比如审计和通信加密等。其中某些内容分别简述一下。
审计提供对日常事件的事后审计监督,不属于数据库原理技术层面。DM数据库可以提供支持,在达梦数据库中开启审计开关,设计审计语句及对象的策略来实现审计功能。审计开关由系统过程控制,SP_SET_ENABLE_AUDIT (1)打开普通审计开关,其后的具体审计工作有专门的审计管理审计分析工具。
强制访问控制功能仅在 DM 安全版中提供,不进行详述。简要的说,DM 利用策略和标记来实现 DM 数据库的强制访问控制。假设达梦数据库中已经有一个用户和一个此用户创建的表,那么可以使用SYSSSO 用户创建一个策略,并为该用户和表应用策略。而用户也可以设置会话默认标记和会话行标记,其他用户则看不到表中数据,只有使用SYSSSO用户为其他用户应用策略及设置标记才可以读取该用户表中的数据。       

达梦数据库的加密管理,主要两个方面: 通信加密和存储加密。        
        通信加密方面,DM 提供以下三种通信方式: 不加密 、SSL 加密 、SSL 认证。是否使用通信加密以 DM 数据库服务器端的设置为准,客户端以服务器 采用的通信方式与其进行通信。可以通过设置服务器配置文件 dm.ini 中的 ENABLE_ENCRYPT 和 COMM_ENCRYPT_NAME 参数来指定通信加密。ENABLE_ENCRYPT 取值 0、1 和 2 分别代表不加密、SSL 加密、SSL 认证,默认值为1。COMM_ENCRYPT_NAME 参数用来指定消息通信的加密算法名,如果为空则不进行通信加密;如果给的加密算法名错误,则使用加密算法 DES_CFB。

在存储加密方面,达梦数据库为了防止用户直接通过数据文件获取用户信息,DM 提供了全面的数据加密的功能,包括使用:透明加密、半透明加密、非透明加密。在透明加密中,密钥生成、密钥管理和加解密过程由数据库管理系统自动完成,用户不可见。创建用户时可以指定存储加密密钥,这个密钥就是为了进行半透明加密时使用的。使用半透明加密时,用户仅能查看到自己插入的数据。DM 对非透明加密的支持是通过对用户提供加解密接口实现的。用户在使用非透明加密时,需要提供密钥并调用加解密接口。采用非透明加密可以保证个人私密数据不被包括DBA在内的其他人获取。存储加密在保证数据文件安全性的同时,也会带来一定的性能影响。
        达梦数据库提供加密引擎功能,系统中内置了常用的 DES,AES,RC4 等类型的加密算法供用户使用,用户可以使用自己特殊的加密算法,或强度更高的加密算法。达梦数据库的加密引擎功能可以满足这样的需求,用户只需要按照 提供的加密引擎 C 语言编程接口,封装自己的加密算法,并编译成第三方加密动态库,即可以在达梦数据库的存储加密中使用自己的加密算法。

达梦数据库还对登录用户名和密码进行了增强加密。在非加密通讯的情况下,为了实现对登录用户名、密码的安全管理,达梦对登录消息中的用户名密码进行了增强加、解密处理。 具体实现分为四步:一是通过 dmkey 工具生成公钥文件和私钥文件。二是配置服务器参数,使用私钥对客户端发送过来的登录名和密码进行解密。三是配置客户端参数,使用公钥文件对登录用户名和密码进行加密。四,启动数据库服务器。

达梦数据库还提供了客体重用安全功能。为防止非法进程利用数据库客体的内存泄露来攻击数据库,达梦数据库主要从内存和文件两个方面进行了处理:1、内存重用:达梦数据库从系统分配内存及释放内存时均对内存内容进行清零,以保证不利用内存中前一进程所残留内容,且不泄漏数据库的内容给其他进程。2、文件重用:达梦数据库在系统生成、扩展及删除文件时,对文件内容也进行了清零。

以上管理方面基于算法或接口,以及底层技术支持,此处不进行详述。本文主要以DBA维护管理达梦数据库的常用操作角度,介绍达梦数据库的用户身份验证,和用户资源限制,以及权限管理 常用的操作。

首先,进行权限验证操作之前的准备工作

首先创建一个表空间 "TS_TEST" ,为了防止数据存放混乱,不是必须的。

CREATE TABLESPACE "TS_TEST" DATAFILE 'TS_TEST.DBF' SIZE 128 AUTOEXTEND ON NEXT 2048;

二、权限操作实践

(1)创建用户TESTUSER并赋予基本数据库访问权限

CREATE USER "TESTUSER" IDENTIFIED BY "Testuser12#" DEFAULT TABLESPACE "TS_TEST" DEFAULT INDEX TABLESPACE "TS_TEST";

GRANT "PUBLIC","RESOURCE","VTI","SOI" TO "TESTUSER";

创建用户可以指定该用户的口令策略。

查看数据库系统配置的用户密码策略:

可以设置PWD_POLICY 参数的值。

由于PWD_POLICY为动态INI参数,新的参数值设置后立即生效。

示例将 PWD_POLICY 置为 8,同时修改文件和内存参数。

SP_SET_PARA_VALUE(1, 'PWD_POLICY',8);

(3)用户创建表

CREATE TABLE TESTUSER.TEST_TAB( ID INT NOT NULL, NAME VARCHAR(50) NOT NULL, SEX CHAR(1) NOT NULL, PHONE VARCHAR(20));

(4)用户的操作系统身份认证方式的参数知识

操作系统身份认证参数主要有3个参数,查看3个参数的默认值。

SQL> select * from v$parameter where name like '%AUTH%' ;

SQL> select * from v$parameter where name = 'ENABLE_ENCRYPT' ;

可以使用系统过程修改参数:

SP_SET_PARA_VALUE(2,'ENABLE_LOCAL_OSAUTH',1);

COMMIT;

重启数据库:

查看参数的修改值。

select * from v$parameter where name like '%AUTH%' ;

5)修改用户信息的操作

1、修改用户口令

ALTER USER TESTUSER  IDENTIFIED BY "TESTUSER1234#"

2、修改用户空间限制

下面的语句修改用户 TESTUSER 的空间限制为 20M。

ALTER USER TESTUSER DISKSPACE LIMIT 20;

6)创建用户onetuser:

CREATE USER onetuser ;

查看已经创建的用户,列示onetuser。

删除用户onetuser

DROP USER onetuser ;

数据库权限的分配实践操作

准备工作

INSERT INTO  TESTUSER.TEST_TAB VALUES(1001,'BBB','1','223456789');

INSERT INTO  TESTUSER.TEST_TAB VALUES(1002,'CCC','1','223456789');

INSERT INTO  TESTUSER.TEST_TAB VALUES(1003,'DDD','1','333456789');

INSERT INTO  TESTUSER.TEST_TAB VALUES(1004,'EEE','0','444456789');

Create view  TESTVIEW as select * from testuser.test_tab where sex='0';

(8)把建表和建视图的权限授给用户 TESTUSER ,并允许其转授。

GRANT CREATE TABLE, CREATE VIEW TO TESTUSER  WITH ADMIN OPTION;

(9)数据库权限的回收

不让用户TESTUSER转授 CREATE VIEW权限。

REVOKE ADMIN OPTION FOR CREATE VIEW FROM  TESTUSER ;

把用户 TESTUSER 的建视图权限收回。

REVOKE CREATE VIEW FROM TESTUSER  ;

(10)使用TESTUSER用户 ,查询TESTU2.TU2_TAB表

1、创建另一个用户TESTU2

CREATE USER "TESTU2" IDENTIFIED BY "TESTU2000" DEFAULT TABLESPACE "TS_TEST" DEFAULT INDEX TABLESPACE "TS_TEST";

GRANT "PUBLIC","RESOURCE","VTI","SOI" TO "TESTU2";

2、创建表TESTU2.TU2_TAB

CREATE TABLE TESTU2.TU2_TAB( ID INT NOT NULL, NAME VARCHAR(20) NOT NULL);

INSERT INTO TESTU2.TU2_TAB VALUES(999,'mike');

INSERT INTO TESTU2.TU2_TAB VALUES(888,'rose');

3、赋权之前TESTUSER用户没有权限查询TESTU2.TU2_TAB表

4、给TESTUSER赋权查询 TESTU2.TU2_TAB表的权限。

GRANT SELECT ON TESTU2.TU2_TAB TO TESTUSER;

5、使用TESTUSER用户再次查询 TESTU2.TU2_TAB表,成功查询

11)收回TESTUSER用户查询TESTU2.TU2_TAB表的权限,查询失败

REVOKE SELECT ON TESTU2.TU2_TAB FROM TESTUSER;

(12)角色管理

角色是一组权限的组合,使用角色的目的是使权限管理更加方便。

使用角色的关键之处是给角色一定要赋予一组特定权限,才能真正发挥角色的高效作用。

最后在需要时,将这个角色授予用户,这个用户就具有了角色中的所有权限。

创建角色 TESTROLE,赋予其 TESTUSER.TEST_TAB 表的 SELECT 权限。

CREATE ROLE TESTROLE;

GRANT SELECT ON TESTUSER.TEST_TAB TO TESTROLE;

(13)将角色给用户赋权

GRANT TESTROLE  TO TESTU2;

使用TESTU2用户查询TESTUSER用户的表,查询成功,证明角色权限成功赋权。

SELECT * FROM TESTUSER.TEST_TAB;

(14)将角色 TESTROLE 禁用

SP_SET_ROLE('TESTROLE', 0);

验证已经没有权限

(15)启用角色 TESTROLE

SP_SET_ROLE('TESTROLE', 1);

验证用户的角色权限

16)删除角色

DROP ROLE TESTROLE;

验证权限,可以看到禁用或者删除角色,用户之前获得的角色的一组权限都会失去。

用户的资源限制实践

DM 支持在创建和修改用户时指定对用户进行资源限制,资源限制用于限制用户对 DM 数据库系统资源的使用。

(17)创建对失败登录次数进行控制的用户,如果用户失败的登录次数达到 3 次,这个用户账号将被锁定。

CREATE USER USER01 IDENTIFIED BY USER01PASSWORD LIMIT FAILED_LOGIN_ATTEMPS 3, PASSWORD_LOCK_TIME 5;

(18)创建对修改口令进行限制的用户,要求用户在 30 天内必须把口令修改过 5 次后,

才能使用过去用过的口令。

CREATE USER USER02 IDENTIFIED BY USER02PASSWORD LIMIT PASSWORD_REUSE_TIME 30, PASSWORD_REUSE_MAX 5;

达梦技术社区 https://eco.dameng.com

浅谈DM达梦数据库安全管理之用户身份验证与权限管理相关推荐

  1. 浅谈DM达梦数据库体系结构概念

    浅谈DM达梦数据库体系结构概念 DM逻辑结构 DM和Oracle一样也分数据库和实例,两者的概念也基本一致. 但是不同点在于:达梦是单进程.多线程,而oracle是多进程的. DM这种对称服务器构架在 ...

  2. 关于DM达梦数据库,获取用户表信息、数据表结构、数据表创建语句、主键等信息的sql

    1.获取数据表中的字段名.类型.长度.描述 select name,reftype,length,descrip from ( select distinct A.COLUMN_ID as id, A ...

  3. 达梦数据库安全管理与体系

    达梦数据库安全管理与体系 达梦数据库产品的安全等级 安全体系结构 达梦数据库安全产品版本 ⚫ 标准版:只包含基本安全功能(可免费下载试用) ⚫ 企业版:功能最全,运行最稳定 ⚫ 安全版:增加强制访问控 ...

  4. oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性

    1 表行计数器 说明 默认情况下,DM 达梦数据库count() 是秒回结果的,不受表中实际行数的影响,执行select count() 都能立即返回正确的结果.因为达梦数据库的count(*)操作不 ...

  5. DM达梦数据库的使用以及数据迁移工具的使用

    1.找不到DM数据库的相关软件 我们打开虚拟机的终端,在根目录下输入命令: ./manager ------->是打开达梦数据库的管理工具 ./dts --------------->是打 ...

  6. DM达梦数据库删除表时提示锁超时的解决方法

    DM 达梦数据库删除表时提示锁超时的问题 1. 问题描述 达梦数据库删除表时,删除失败,提示的报错信息是 锁超时 2. 解决方法 查询所删除表对应的SESS_ID,sql语句如下: select a. ...

  7. 达梦数据库 查询当前用户连接数命令

    达梦数据库 查询当前用户连接数命令 查询当前用户连接数 select count(*) from v$sessions where state='ACTIVE'; 查询最大连接数 select SF_ ...

  8. dm服务器未能启动,DM 达梦数据库 创建服务 无法创建目录_REPLACE_SELF_DM_HOME 错误解决方法...

    在升级DM 8.1.1.19升级到8.1.1.48 的操作中,创建的服务无法正常启动. 但手工执行dmserver 命令是可以启动达梦实例. https://www.cndba.cn/dave/art ...

  9. 国产数据库--DM(达梦数据库)

    公司简介 武汉华工达梦数据库有限公司(达梦公司)是国家规划布局内重点软件企业.公司成立于2000年11月,得到了国家计委.科技部.信息产业部.总装备部.公安部等中央部委.省市政府的支持扶植. 达梦数据 ...

最新文章

  1. impala 本年格式化时间_hive,hbase,impala之间的对比
  2. app 404 html,静态页面错误404(Flask框架)
  3. python怎么读文件里的某一行-Python如何获取文件指定行的内容
  4. ubuntu 配置dns访问外网
  5. java log4j 多个文件_为什么log4j会记录到两个单独的文件? [重复]
  6. JAVA_WEB--jsp语法
  7. 【渝粤题库】陕西师范大学300008 历史教学论
  8. 小米刷第三方recovery_小米平板4/Plus LTE版本开启电话功能
  9. 《零基础》MySQL 管理(三)
  10. 兼容FF/IE的添加收藏夹的代码
  11. java定时器小程序_【微信小程序】使用setTimeout试试定时器
  12. VS2013 community卸载后不能重装的问题
  13. 关于BMC ipmi oem cmd和redfish
  14. 基于html5的城市公交查询系统,城市公交在线查询系统的设计与实现
  15. [uboot 移植]uboot 移植过程
  16. TestReport目录
  17. idea中自动生成Java类图和时序图
  18. matlab画多個平面,matlab的平面二维图的绘制.ppt
  19. b和kb的换算_b和bit换算(KB转换G)
  20. 2009年的MACBOOK苹果电脑重装MAC OS 10.8.5系统

热门文章

  1. JavaScript中开关灯案例展示
  2. 天猫详情页设计思路分析篇
  3. 如何把幻灯片ppt转换成视频_百度经验
  4. nexus5 android os 耗电,Nexus5刷android 9系统?
  5. 搭建直播平台服务器什么配置最合适?直播平台专用服务器(驰网i9-13900k服务器)
  6. 电容过大导致电压下降_MLCC陶瓷电容详解
  7. highcharts饼图展示
  8. iOS获取视频图片(视屏截图)
  9. 云课堂计算机教室真的好吗,“云课堂”教室是什么样?
  10. 机器学习建模中的Bagging思想!