如何设计数据库

如何设计数据库,第1张

方法/步骤

常见数据库设计

一主多从

冗余读库带来的副作用:读写有延时,可能不一致;写仍然是单点,不能保证写高可用。

主库冗余

存在数据不一致问题

数据读取速度

利用缓存来实现

常见缓存设计如下

在对数据库进行写入时,把原数据加密后的数据写到数据库。调用时,先读取出来,然后解密读取的数据,在调用。

比如,我往数据库存放数据“abc”,我自己定义了,用 y代表a h代表b n代表c 那么加密“abc”后就是“yhn”,把“yhn”存入数据库中。这样别人就算查看了 数据库的内容 看到是“yhn”,不能知道原来的数据是什么。你调用数据时,取出数据库的进行解密为“abc”就行了

我举一个例子:有的OA系统是要公司客户自己有服务器,然后装到客户的服务器上。可是客户嫌麻烦,所以我想将OA系统(PHP+Mysql)放在自己的服务器上,让公司客户及其员工来注册使用。那么问题来了,原来在客户自己的服务器上数据库也就十几张表,但都放到我的服务器上,每注册一个公司就得增加十几张表,那如果有一万家公司注册数据库不得有几十万张表?跟楼主一样的问题,有一些老牌厂商早就给出来完美答案了,比如华为、天翎都有过类似的问题,这些企业提出的解决方案就很不错,就针对上面的问题,最简单的办法是给每张表加个实例ID,一个公司对应一个实例ID,然后在你的MVC架构中跟DB最近的这一层加个拦截器,每个SQL查询都自动带上实例ID,这样不用对代码做很大改动。后期再根据需要优化,哪些公司合用一张表,哪些单独占用一张表甚至一个数据库,总之具体问题具体对待,需要在运营的过程中根据用户量和业务情况来分析采取对策。

Yearning SQL审核平台目前兼容99%的Mysql 标准SQL语法。

已知不支持的语句类型有:

下面对其中的功能模块做一下介绍,以下基于Yearning 20版本。

1、dashboard

dashboard主要展示Yearning各项数据包括用户数/数据源数/工单数/查询数以及其他图表,个人信息栏内用户可以修改密码/邮箱/真实姓名,同时可以查看该用户权限以及申请权限。

2、我的工单

展示用户提交的工单信息,对于执行失败/驳回的工单点击详细信息后可以重新修改sql并提交,对于执行成功的工单可以查看回滚语句并且快速提交SQL

3、工单-DDL

具有以下功能:

1)DDL相关SQL提交审核

2)查看表结构/索引

3)SQL语法高亮/自动补全

如果想获取表结构详细信息,必须选填表名并完整填写工单信息。所有的SQL只有在检测后错误等级为0时提交按钮才会激活,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限

4、工单--DML

具备以下功能:

1)DML相关SQL提交审核

2)SQL语法高亮/自动补全

所有的SQL只有在检测后错误等级为0时提交按钮才会激活,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限

5、查询

具备以下功能:

1)查询/导出数据

2)SQL语法高亮/自动补全

3)快速DML语句提交

如果开启查询审核,提交该查询申请后需对应审核人同意后方可查询,超级管理员在设置页面开启数据导出功能后,查询申请页面才会显示数据导出按钮(默认为csv格式),获取表结构功能必须点击相应表名此为前置条件,快速提交功能仅支持DML语句,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限

1、工单审核

功能:DDL/DML管理员审核并执行

实时刷新开关默认打开,如需删除记录请先关闭该开关。如定时工单的时间小于当前时间,执行该工单将会立即执行,目前仅支持延时工单中止,其他工单执行后无法中止!

2、查询审核

功能:用户查询审核

点击全部中止按钮将会中止所有用户的查询权限 如没有在设置页面开启查询审核开关,则默认用户查询申请提交后自动获得查询权限。 用户查询时限在设置页面进行设置

3、权限审核

功能:用户权限审核

权限由用户在首页个人信息处自主申请,管理员可在该审核页面决定是否给予用户申请的权限,由于用户可能存在胡乱申请权限的问题,所以 管理员在查看用户权限申请工单的同时可对工单申请的权限进行修改,确定具体的权限给予

1、工单审计

主要是审计工单的执行情况,记录工单的执行时间、申请人、执行人等信息。

2、查询审计

针对数据库查询记录做审计

1、用户

功能:创建/修改/删除用户

当多级审核关闭后系统并不会自动将角色为执行人的用户重置角色,需要自行重置相应用户角色

2、数据库

功能:添加/编辑/删除 数据源

所有添加的数据源应在添加之前点击测试连接按钮进行连接性测试,保证连接性。

数据源分为 查询数据源/非查询数据源 。查询数据源仅会出现在细粒度权限的查询数据源范围内。非查询数据源同理。(对于查询与执行数据源应拆分为二,保障线上执行数据源不会因为查询慢sql影响业务),此类别添加后 无法通过编辑进行修改 ,需要慎重添加。

3、用户权限

功能:用户权限修改/清空

批量赋权仅支持角色为使用人的用户。由于批量赋权为覆盖更新,仅适合在用户权限为空时使用。

4、设置

功能:

在配置填写无误后点击测试按钮进行相关测试, 使用消息推送前必须先打开对应消息推送开关,否则Yearning不会进行推送

5、审核规则

功能:设置SQL检测规则

保存后即时生效

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

--禁用C2 审核跟踪和只限成功的登录

EXEC syssp_configure N'c2 audit mode', N'0'

GO

RECONFIGURE WITH OVERRIDE

GO

USE [master]

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 1

GO

SQLSERVER2008新增的审核功能

在sqlserver2008新增了审核功能,可以对服务器级别和数据库级别的 *** 作进行审核/审计,事实上,事件通知、更改跟踪、变更数据捕获(CDC)

都不是用来做审计的,只是某些人乱用这些功能,也正因为乱用这些功能导致踩坑

事件通知:性能跟踪

更改跟踪:用Sync Services来构建偶尔连接的系统

变更数据捕获(CDC):数据仓库的ETL 中的数据抽取(背后使用logreader)

而审核是SQLSERVER专门针对数据库安全的进行的审核,记住,他是专门的!

方法一:用sql进行分页,获取分页数据。根据RequesQueryString来获取页索引,根据页索引和页大小获取分页数据,然后生成html。

方法二:也是一个用于大型网站的方法。新闻条数的增长速度是相对缓慢的,在新增一条新闻前,每次查询出的数据都是一样的。所以可以在列表被请求前就事先生成该列表(静态页面)。这个方法可以结合方法一,也可以一次获取所有记录,再分页生成html。

以上就是关于如何设计数据库全部的内容,包括:如何设计数据库、如何对数据库进行加密和审核的安全设置、如何实现OA系统的自定议审批流程的数据库设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9729830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存