概述:
为了保证数据库系统的安全性,DM 数据库采用“三权分立”或“四权分立”的安全机制,“三权分立”时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。
三权分立和四权分立,就是根据权限的功能不同,划分为不同的角色,归属到不同的用户上。各自的用户只能做自己权限以内的事,并且能够相互监督管理。
SYSDBA:数据库管理员,在三权分立和四权分立中功能是有区别的
三权分立:既可以进行系统管理工作,维护工作,也可以对数据内容进行增删改查操作
四权分立:只能进行系统管理和维护工作们不能对数据内容进行增删改查
数据库系统管理员类型介绍:
DM 数据库实现了 B1 级安全特性。三权分立的安全机制,将系统管理员分数据库管理员、数据库安全员和数据库审计员三类。在安装过程中,DM 数据库会预设数据库管理员账号SYSDBA、数据库安全员账号 SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。―四权分立‖的安全机制,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四类,在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为 SYSDBO。用户需要在安装过程中或者安装完毕后立即修改缺省口令,避免因口令泄漏造成的安全问题。
1.1、数据库管理员(DBA)
“三权分立”的安全机制,每个 DM 数据库至少需要一个数据库管理员来管理,负责评估数据库运行所需的软、硬件环境、安装和升级 DM 数据库、配置 DM 数据库参数、创建主要的数据库存储结构(表空间)和对象(如表、视图、索引、角色、用户等)、监控和优化数据库性能、数据导入导出以及数据库的备份和恢复等。
“三权分立”时数据库管理员既可进行系统管理和维护工作,也可对数据内容进行增删查改动作。根据国产数据库军事使用要求,数据库管理员只能进行系统管理和维护工作,不能对数据内容进行增删查改,数据库应用人员则可操作数据内容,而不能管理和维护系统。“四权分立”的安全机制,在原有“三权分立”基础上调整自主访问控制权限,只具有“三权分立”中 DBA 角色预设的一部分与数据库管理相关的明确的数据库权限,如数据库创建、备份、还原和校验等。
1.2、数据库安全员(SSO)
对于很多对安全性要求不高的系统来说,C2 级安全特性已经能够工作得很好,此时不需要考虑通过数据库安全员来进一步加强系统的安全机制。但是在很多大型的系统中,安全性还是至关重要的,有必要由安全员来制定安全策略,强化系统安全机制,此时数据库安全员的主要任务就是制定安全策略,定义新的数据库安全员,设置系统的安全等级、范围和组,并为主、客体定义安全标记,从而全面提升系统安全性。
1.3、数据库审计员(AUDITOR)
数据库审计员可以设置要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录。通过设置审计,几乎可以跟踪任何人在系统内执行的任何操作,为事后追查提供便利。
1.4、数据库对象操作员(DBO)
数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。
数据库用户的管理
达梦数据库用户是建在实例下的,因为实例相互独立,所有达梦数据库不同的实例下可以有相同的用户名。另外,在达梦数据库中通过create user语句创建用户时,会同时创建一个同名的模式。也可以通过create schema语句单独创建模式,并授权给某个已存在的用户,因此在达梦数据库中用户与模式是1:N的关系。
模式:
模式是一个逻辑容器,可以把模式理解为文件夹,方便我们对一组数据库对象进行管理,在概念上可将其看作是包含表、视图、索引和权限定义的对象。
具体的说,dm8模式下包含了表、视图、约束、索引、序列、触发器、存储过程/函数等
模式的作用:
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema;
一个用户还可以使用其他的schema(Oracle数据库也可通过权限管理实现访问其他schema);
创建模式不指定用户时,该模式默认为SYSDBA拥有;
在同一模式下不能存在同名对象,但在不同模式中的对象名称可以相同;
用户可以直接访问同名模式对象,但如果要要访问其他模式对象,则必须具有对象权限;
当用户要访问其他模式对象时,必须附加模式名作后缀(schema.table);
用户是用来连接数据库对象,而模式是用来创建及管理对象的。
模式的管理:
在创建用户时,系统会为每一个用户自动建立了一个与用户名同名的模式作为其默认模式,用户还可以用模式定义语句建立其它模式
#创建模式
create schema (模式名) [AUTHORIZATION <用户名>]
#删除模式
drop schema <模式名> [RESTRICT | CASCADE];
角色:
角色是一系列权限的集合,是方便用户操作的一个方式,因为把很多的权限授权给一个角色,后面要授权某个用户所有这些权限,只需要grant 角色 to 用户就可以了
DBA:达梦数据库中对象和数据操作的最高权限集合,拥有构建数据库的全部权限,只有DBA用户才可以创建数据库结构;
RESOURCE:可以创建数据库对象,对有权限的对象进行数据操作,不可以创建数据库结构;
PUBLIC:不可以创建数据库对象,只能对有权限的对象进行操作;
VTI:可以查询系统动态视图;
SOI:可以查询系统表(SYS开头的表)。
角色的管理:
#创建角色wu
create role wu;
授权给角色wu创建表的权限
grant create table to wu with admin option;
授权给用户yong 角色wu
grant wu to yong;
查新角色权限
select * from dba_sys_privs where grantee ='wu';
收回角色
revoke public from test;
用户:
查看达梦数据库系统中的所有用户信息
Select * from dba_users;
达梦数据库内置用户
SYSSSO:系统安全员
SYSDBA:系统管理员
SYS:内置用户
SYSAUDITOR:系统审计相关功能
创建一个用户test,默认是public角色。
Create user teest identified by test123456;
更多内容可访问达梦官方社区地址:https://eco.dameng.com