对于数据库的巡检,应使用SQL Monitor, Zabbix监控工具实现自动化运维,超过警告阈值及时通过邮件,短信通知相关运维人员进行处理。
检查服务和后台进程是否正常,如果服务或进程停止,应及时恢复,并对系统日志进行分析,确定异常原因。
通过监控平台检查数据库网络是否能正常通信,如果存在网络异常,立即联系网络专员进行排查处理。
通过监控平台保证磁盘空间有20%以上的可用空间,如果空间不足,可删除无用文件增加可用空间或对历史数据进行归档并做数据库收缩,必要时可以考虑扩容硬盘容量。
通过自动化邮件告警接收数据库警告文件,如出现异常时,及时联系业务部门进行处理。
备份文件是数据库安全的重要环节,出现数据故障或灾难都需要备份进行数据还原恢复,如果备份作业失败,需立即手工启动数据库备份。
操作系统可用内存需要在30%以上(可通过任务管理器查看),且缓存命中率最好在90%以上,如果不是需要考虑优化查询或者增加内存。
缓存命中率可通过脚本查看,参见《附录二:获取数据库缓存命中率》
如果CPU的平均利用率持续长时间超过80%(24小时的监控周期里大约超过10分钟),这个时候要需要减少服务器的负载,优化查询或者更换更高频率的CPU。
读取数据所需平均时间小于20ms,写入数据所需平均时间小于40ms,如果持续超过设定的阈值(在你24小时的监控周期里大约超过10分钟,一个小时出现好几次),说明SQLServer有I/O瓶颈,这个时候要需要减少服务器的负载,优化查询,更换更快的磁盘控制器或者给控制器卡增加缓存。
进行SQL分析,看是否有异常查询,有无优化空间。脚本参见《02-数据库监控手册》
数据完整性检查一般在做数据库迁移后执行,发现损坏要及时修复,防止对业务系统产生不利影响。非特殊情况禁止在生产环境中使用。
DBCC CHECKDB
检查高速缓存区命中率,资源争用情况,若有异常,加以分析并改善
脚本参见《02-数据库监控手册》
随着系统运行,数据库会慢慢形成索引与数据页碎片,这样会降低扫描索引和数据页的速度,降低检索数据速度,因此需要对数据库运行状况做出统计,并分析资源消耗趋势,提前做好规划。
1.每月对数据库索引和数据页进行重组,因重组耗时较长,需要安排在业务闲时进行处理。【ALTER INDEX 索引名称 ON 表名 REORGANIZE】
2.对重要的业务大表定期(根据业务情况设定,可以一天一次)更新数据库统计信息。【UPDATE STATISTICS 表名】
1、数据库服务器置于单独的服务器区域,任何对这些数据库服务器的物理访问均应受到监管和控制。
2、数据库服务器所在的服务器区域边界部署防火墙或其它逻辑隔离设施。
1、重要的数据库服务器除提供数据访问服务外,不提供任何其它的服务。如WEB,FTP等。
2、数据库专用帐户,赋予账户除运行数据库服务之外的最小权限,sa或是sysadmin等权限不能对外开放。sa默认帐号应该禁止在任何地方使用。
3、目录及相应文件访问权限进行控制,非数据库管理员不能访问数据库服务器上任何目录如:禁止用户访脚本存放目录。
4、数据库服务器置于单独的服务器区域,任何对这些数据库服务器的物理访问均应受到控制
5、数据库服务器所在的服务器区域边界部署防火墙或其它逻辑隔离设施。
5、去掉不必要的协议。禁用不必要的端口
确认用户和应用程序不使用管道通讯,删除管道,只保留TCP/IP协议。
①定期对数据库账户进行梳理,删除多余无用账号,对于离职人员的账号需要人资部门通知后要进行及时禁用和删除,禁止有高权限的应用程序账号存在。
②加强管理扩展存储过程
扩展存储过程(例如xp_cmdshell等),容易被利用来提升权限或进行破坏,需要进行删除,删除之前必须要确认应用程序没有调用。
1、正式生产数据库系统与开发测试数据库系统物理分离,确保没有安装未使用的数据库系统组件或模块。
2、数据库用户的创建、删除和更改工作,并做好记录,按照最小原则进行授权。数据库管理员拥有对数据库管理的最高权限。
3、数据库对象存储空间的创建、删除和更改工作,并做好记录。
4、对系统的安装更新、系统设置的更改等要作好维护记录。
5、确保没有开启未使用的数据库系统服务。
6、数据库系统安装必要的升级程序或是补丁,升级前作好数据库备份。
7、编写建立权限脚本,为后续实施权限准备编写导出脚本权限,出现重组服务器或服务器宕机,可以直接运用脚本
8、禁止员工和运维人员在生产数据库建立以管理用途为目的数据库管理帐号,一经发现,永久禁用。须由DBA统一建立和权限管理。
数据库服务器通用安装指引
详细参见《01-数据库安装手册》
1、严禁任何人泄漏美宜佳数据库业务关键数据,需要访问业务数据时,必须提出申请批准后才能对数据进行相关的操作,并做好记录与日志。具体申请流程参见企业微信—零方科技信息权限申请流程
2、数据库安全性设计与管理需要依照《美宜佳数据保护技术规范》、《美宜佳数据资产管理条例》等制度实施。
1、数据库对象的建立要遵循标准执行,所有的表,必须有主键,相关约束,建立索引按照相应的字段, 示例:IDX_TABLENAME_XXX_01的标准执行。
2、使用存储过程时应严格控制禁止在过程中使用多个链接服务器进行数据查询,在进行查询时应查看SQL执行计划,通过系统的建议,再相应的执行,任何时候禁止使用select * from table名的方法执行SQL查询语句。
原则上由数据库管理员负责每个业务数据库的生命周期,即从到建立数据库,备份数据库,维护数据库,删除数据库,都由数据库管理员获取相应权限的情况下进行,其他人员一律无权新建数据库。已经建立的须向技术委员会报备,并为新数据库建档留存并审核。
示例:MPS数据库,命名为 ‘MPSDB’
MPS备份数据库,命名为 ‘MPSDB_BA’
MPS 归档数据库 命名为 ‘MPSDB_ARC’
功能标识:标识用于什么功能
账号性质:只读(r)、只写(w)、读写(wr)
示例:app_mpsReport_r(MPS报表只读账号)、app_mpsWeb_wr(MPSWeb读写账号)
功能标识:标识用于什么功能
账号性质:只读(r)、只写(w)、读写(wr)
示例:link_synchMpsData_r(同步MPS数据)
功能标识:标识用于什么功能
账号性质:只读(r)、只写(w)、读写(wr)
示例:agent_GenerReport_wr(生成报表读写账号)
示例:按照区域拼音简写划分,东莞:DG 湖南:HN
如计算机名:DGSDB538, DG代表东莞,S代表服务器,DB代表数据库
538代表IP地址192.168.5.38
在生产环境中,必须严格管理固定服务器角色及权限。
角色 | 权限说明 | 适用人员或场景 |
bulkadmin | 这个角色可以运行BULK INSERT语句,该语句允许从文本文件中将数据导入SQLSERVER数据库中 | 需要执行大容量插入到数据库的域帐号 |
dbcreator | 这个角色可以创建、修改、删除和还原任何数据库。 | DBA |
diskadmin | 这个角色用于管理磁盘文件,比如镜像数据库和添加备份设备 | 助理DBA |
processadmin | 终止在SQLSERVER实例中运行的进程 | DBA |
public | 初始状态时没有权限;第二,所有数据库用户都是他的成员。 | 所有数据库用户 |
securityadmin | 这个角色将管理登录名及其属性,可以授权,拒绝和撤销服务器级/数据库级权限,可以重置登录名和密码。 | DBA |
serveradmin | 这个角色可以更改服务器范围的配置选项和关闭服务器 | DBA |
setupadmin | 为需要管理联接服务器和控制启动的存储过程的用户设计。 | DBA |
sysadmin | 这个角色有权在SQLSERVER中执行任何操作。建议将Administrators组从该角色中删除。 | DBA |
角色 | 权限说明 | 适用人员或场景 |
db_accessadmin | 可以在数据库中添加和删除数据库用户,组及角色,并设置访问权限 | DBA |
db_backupoperator | 可以备份和还原数据库 | DBA |
db_datareader | 可以读取任何表中的数据。 | 一般用户 |
db_datawriter | 可以添加、更改或删除所有表中的数据 | 一般用户 |
db_ddladmin | 可以添加、更改或删除数据库对象(即可以执行任何DDL语句) | DBA |
db_denydatareader | 不能读取任何表中的数据,但仍可以通过存储过程来查看 | 特别管控用户 |
db_denydatawriter | 不能更改任何表中的数据,但仍然可以通过存储过程来修改 | 特别管控用户 |
db_owner | 执行任何操作 | DBA |
db_securityadmin | 可以更改数据中的权限和角色 | DBA |
public | 每个数据库角色用户都属于public角色,未对用户授权之前,该用户将被授予public角色的权限,该角色不能被删除。 | 所有数据库用户 |
确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。
如果需要限制用户通过特定应用程序(例如销售APP)来访问数据或防止用户直接访问数据。限制用户的这种访问方式将禁止用户使用应用程序(如 SQL 查询分析器)连接到 SQL Server 实例并执行编写质量差的查询,以免对整个服务器的性能造成负面影响。用户只能用帐号登录到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。
必须按照应用需求,设计不同的用户访问权限。包括应用系统管理用户,普通用户等,按照业务需求建立不同的应用角色。
数据库管理员收到人员离职通知后,应即时审查该人员是否拥有数据库访问账户;并禁用和删除相应人员的权限。
制定数据库系统的备份策略,定期对数据库系统进行备份。如备份周期,方式等。遵循32 1 0备份原则进行数据库数据备份。
3:存储 3 份完整文件,一份原件加上两份拷贝。
2:将文件起码保持在两种不同的介质上。(NAS,或是磁带)
1:将一份拷贝保存在异地。
0:零数据丢失
数据库备份策略要以高效备份与恢复为目标,与操作系统的备份最好地结合,物理备份与逻辑备份相结合。
必须对备份帐户的权限严格控制,由数据库管理员或指定专人负责。
妥善存放和保管备份介质(从数据库导出的磁盘柜等),防止非法访问与丢失。
根据重要性对数据库进行周期或不定期进行恢复测试与应及处理。
数据库升级、表结构变更、数据库分库分表分区、业务核心表变更前必须进行数据备份。对数据层面重大调整的,应启动完整日志或数据备份等数据容灾策略。
完全备份:对备份的内容进行整体备份。
增量备份:仅备份相对于上一次备份后新增加和修改过的数据。
差异备份:仅备份相对于上一次完全备份之后新增加和修改过的数据。
按需备份:仅备份应用系统需要的部分数据,或临时需要解决的问题。