当前位置:首页 » 编程语言 » sql自动审查
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql自动审查

发布时间: 2023-04-01 02:23:00

⑴ 如何开启sqlserver2008数据库审计功能

SQLSERVER2008新增的审核功能
在sqlserver2008新增了审核功能,可以对服务器级别和数据库级别的操作进行审核/审计,事实上,事件通知、更改跟踪、变更数据捕获(CDC)
都不是用来做审计的,只是某些人乱用这些功能,也正因为乱用这些功能导致踩坑
事件通知:性能跟踪
更改跟踪:用Sync Services来构建偶尔连接的系统
变更数据捕获(CDC):数据仓库的ETL 中的数据抽取(背后使用logreader)

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

我们看一下审核的使用方法
审核对象
步骤一:创建审核对象,审核对象是跟保存路径关联的,所以如果你需要把审核操作日志保存到不同的路径就需要创建不同的审核对象
我们把审核操作日志保存在文件系统里,在创建之前我们还要在相关路径先创建好保存的文件夹,我们在D盘先创建sqlaudits文件夹,然后执行下面语句
--创建审核对象之前需要切换到master数据库
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(FILEPATH='D:\sqlaudits') --这里指定文件夹不能指定文件,生成文件都会保存在这个文件夹
GO

实际上,我们在创建审核对象的同时可以指定审核选项,下面是相关脚本
把日志放在磁盘的好处是可以使用新增的TVF:sys.[fn_get_audit_file] 来过滤和排序审核数据,如果把审核数据保存在Windows 事件日志里查询起来非常麻烦
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(
FILEPATH='D:\sqlaudits',
MAXSIZE=4GB,
MAX_ROLLOVER_FILES=6)
WITH (
ON_FAILURE=CONTINUE,
QUEUE_DELAY=1000);

ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)

MAXSIZE:指明每个审核日志文件的最大大小是4GB
MAX_ROLLOVER_FILES:指明滚动文件数目,类似于SQL ERRORLOG,达到多少个文件之后删除前面的历史文件,这里是6个文件
ON_FAILURE:指明当审核数据发生错误时的操作,这里是继续进行审核,如果指定shutdown,那么将会shutdown整个实例
queue_delay:指明审核数据写入的延迟时间,这里是1秒,最小值也是1秒,如果指定0表示是实时写入,当然性能也有一些影响
STATE:指明启动审核功能,STATE这个选项不能跟其他选项共用,所以只能单独一句

在修改审核选项的时候,需要先禁用审核,再开启审核
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
ALTER SERVER AUDIT MyFileAudit WITH(QUEUE_DELAY =1000)
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)

审核规范
在SQLSERVER审核里面有审核规范的概念,一个审核对象只能绑定一个审核规范,而一个审核规范可以绑定到多个审核对象
我们来看一下脚本
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO

CREATE SERVER AUDIT MyAppAudit TO APPLICATION_LOG
GO
ALTER SERVER AUDIT MyAppAudit WITH(STATE =ON)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyAppAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO

我们创建一个服务器级别的审核规范CaptureLoginsToFile,然后再创建多一个审核对象MyAppAudit ,这个审核对象会把审核日志保存到Windows事件日志的应用程序日志里
我们禁用审核规范CaptureLoginsToFile,修改审核规范CaptureLoginsToFile属于审核对象MyAppAudit ,修改成功

而如果要把多个审核规范绑定到同一个审核对象则会报错
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileA
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO

CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileB
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO

--消息 33230,级别 16,状态 1,第 86 行
--审核 'MyFileAudit' 的审核规范已经存在。

这里要说一下 :审核对象和审核规范的修改 ,无论是审核对象还是审核规范,在修改他们的相关参数之前,他必须要先禁用,后修改,再启用
--禁用审核对象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
--禁用服务器级审核规范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
--禁用数据库级审核规范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=OFF)
GO

--相关修改选项操作

--启用审核对象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
--启用服务器级审核规范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=ON)
GO
--启用数据库级审核规范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=ON)
GO

审核服务器级别事件
审核服务级别事件,我们一般用得最多的就是审核登录失败的事件,下面的脚本就是审核登录成功事件和登录失败事件
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO

修改审核规范
--跟审核对象一样,更改审核规范时必须将其禁用
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =OFF)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
ADD (login_change_password_gourp),
DROP (successful_login_group)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =ON)
GO

审核操作组
每个审核操作组对应一种操作,在SQLSERVER2008里一共有35个操作组,包括备份和还原操作,数据库所有权的更改,从服务器和数据库角色中添加或删除登录用户
添加审核操作组的只需在审核规范里使用ADD,下面语句添加了登录用户修改密码操作的操作组
ADD (login_change_password_gourp)

这里说一下服务器审核的内部实际上使用的是SQL2008新增的扩展事件里面的其中一个package:SecAudit package,当然他内部也是使用扩展事件来收集服务器信息

审核数据库级别事件
数据库审核规范存在于他们的数据库中,不能审核tempdb中的数据库操作
CREATE DATABASE AUDIT SPECIFICATION和ALTER DATABASE AUDIT SPECIFICATION
工作方式跟服务器审核规范一样
在SQLSERVER2008里一共有15个数据库级别的操作组
7个数据库级别的审核操作是:select ,insert,update,delete,execute,receive,references

相关脚本如下:
--创建审核对象
USE [master]
GO
CREATE SERVER AUDIT MyDBFileAudit TO FILE(FILEPATH='D:\sqldbaudits')
GO
ALTER SERVER AUDIT MyDBFileAudit WITH (STATE=ON)
GO
--创建数据库级别审核规范
USE [sss]
GO
CREATE DATABASE AUDIT SPECIFICATION CaptureDBActionToEventLog
FOR SERVER AUDIT MyDBFileAudit
ADD (database_object_change_group),
ADD (SELECT ,INSERT,UPDATE,DELETE ON schema::dbo BY PUBLIC)
WITH (STATE =ON)

我们先在D盘创建sqldbaudits文件夹
第一个操作组对数据库中所有对象的DDL语句create,alter,drop等进行记录
第二个语句监视由任何public用户(也就是所有用户)对dbo架构的任何对象所做的DML操作

创建完毕之后可以在SSMS里看到相关的审核

⑵ sql server 2005 怎么开启C2审核策略

在ssms中右键点服务器属性
在安全性中选择启动C2审核跟踪

⑶ SQL审核 | SQLE-SQL审核平台体验报告

通过SQLE的产品结构图我们可以看到,SQLE 的界面设计较简洁,工作台可以看到与自己相关的待办工作;首页列表放置核心功能【工单】审核,其它功能收集到平台管理中;【规则】可以考虑收入到【平台管理】中;【审核计划】也可以考虑收入到【平台管理】中,审核的结果可以集成到工单中,方便统一进行处理。

通过 SQLE 的流程图可以看到,整体流程分为两个两个部分,一个是基础配置,配置好了基础配置以后,就可以执行上线流程了;对于审核不合格的功能依旧可以执行工单,没有起到自动审核的意义,对于ERROR级别的错误可以自动驳回不与上线;进入工单页面后不能很好的发现审核操作按钮(工单进度部分),需要下拉窗口才能发现;可以把审核操作放到审核结果列表后面加一个操作列,体验会更加友好。下图为缩放67%后才能看到下面的审核操作.

(1)创建SQL工单-SQL语句不支持输入联想,建议增加输入联想,提高录入效率

(2)创建SQL工单-SQL语句对于明显语法错误不能及时提示,建议增加语法错误提示,提前发现明显问题

(3)创建SQL工单-SQL语句输入框高度过高,点击审核后不方便查看到结果,建议降低高度增加宽度

(4)创建SQL工单-工单不支持自定义上线时间,同时也不支持定时上线

由于时间有限,仅是个人测试体验;SQLE 整体设计不错,符合现在主流平台的各方面特征;主要几个设计点我比较喜欢:

⑷ sql如何自动判断表1中的值是否在表2中出现

select表1.序号,表1.姓名,(caseisnull(表2.姓名,'否')when'否'then'否'else'是'end)是否标记from表1leftjoin表2on表1.姓名=表2.姓名

试试这个

⑸ 详解Yearning SQL审核平台功能模块设计

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

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

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

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方面的内容,感兴趣的朋友可以关注下~

⑹ SQL SERVER2008数据库自动定时对数据库表进行检查,按条件把多余的数据删除。。 求大侠。。。

1、先定义判断多余数据的规则
2、写一存储过程
3、建Job调用存储过程

再有可以用约束或触发器来闷皮从根本上避免多余数带罩谨据蠢基

⑺ 如何通过SQL语句设置数据库登录审核的状态

刚好上次讲三层架构.有现成的例子

以一个验证登陆为例子
这里是界面层一般叫UIL
protected void Button1_Click(object sender, EventArgs e)
{
List<User> Users = BAL.GetUserInfo(txtUserName.Text,txtPassword.Text);

if(Users.Length > 0)
{
Response.Write("登陆成功");
}
else
{
Response.Write("登陆失败");
}
}

以下是逻辑层代码,业务逻辑层一般叫BLL
public static List<User> GetUserInfo(string user,string password)
{
string newPassword = GetMD5Hash(password); //这里对密码进行加密处理,数据库中存放的是经过MD5加密后的密,业务逻辑层一般都是处理复杂的逻辑.例如加密逻辑
List<User> Users = DAL.GetUserInfo(user,newPassword);

return Users;
}

以下是数据访问层代码,数据访问层一般叫DAL
public static List<User> GetUserInfo(string user,string password)
{
List<User> Users = new List<User>();
string sql = "select * from User where Password = '"+password+"' and User = '"+user+"'"; //写where子句的时候把Password放前面.因为Password经过加密,所以可以防止SQL注入攻击
SqlDataAdapter da = new SqlDataAdapter(sql,"这里是数据库连接字符串");
DataSet ds = new DataSet();
da.Fill(ds);

for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
User user = new User(ds.Tables[0].Rows[i]["ID"].ToString(),ds.Tables[0].Rows[i]["User"].ToString(),ds.Tables[0].Rows[i]["Password"].ToString());
Users.Add(user);
}

return Users;
}

还会有一个Model层.叫做模板层.是数据表结构的印射.Model层是共用层,其他三层都要用到.
比如数据库中有张表User,里面有3个字段ID,User,Password
那么在模板层中应该有一个类,数据库中User表的一行对应一个User对象,一张表对应User对象的集合.
public class User
{
string ID;
string User;
string Password;

//重载构造函数
User(string id,string user,string password)
{
this.ID=id;
this.User=user;
this.Password=password;
}
}

⑻ SQL是干什么用的用的哪些方面

说sql之前,首先需要聊聊数据库,数据库到底是什么东西呢,顾名思义,数据库就是保存数据的仓库,它可以存储我们日常生活中的数据,比如学校的一些基本信息,公司的人员信息甚至是我们日常的一些照片或者视频之类的都可以保存。

那么我们如何能够将我们的这些数据信息保存到数据库呢,数据库是存放在物理计算机上的,为了能够很好地去操作数据库,这时候我们就需要借助sql来进行操作,sql按照一定的语法规范,将我们所需要的数据,按照一定的规范组装之后,就可以和数据库进行交互了。

平时我们进行较多的操作也就是数据的添加,修改,删除和查看,当我们需要进行这些操作的时候,我们通过sql发出相对应的命令即可,而且它的操作非常的简单,对于初学者来书,也很容易上手。

现如今互联网的发展速度很快,几乎我们所能看到的网站的数据,都是存储在了数据库中,因此对于数据库的操作也是非常的重要了,因而sql也就我们所需要掌握的技术,对于我们开发网站,你可以不懂数据库的底层原理,但是你需要了解基本的sql语句,只有了解了sql你才可以完成一个完整的网站开发。所以sql对于我们开发来说也是非常的重要了。

对于不同的数据库来说,sql的语法基本大似相同,学会了一种sql语句,其他的也基本就都了解了,而且对于同一个数据库来说,即使运行在不同的操作系统上,sql语句都不需要进行修改,对于数据库管理员(DBA)或者开发者来说,我们需要考虑的事情就少了很多,因为像其他有些编程语言,对于不同的操作系统,还需要考虑不同平台的差异。

sql的语法也是非常的简单,即使对于不同的数据库来说,创建数据库或者数据表使用`CREATE`(创建)关键字即可,查看数据使用`SELECT`(选择)即可,插入数据使用``(插入)即可,修改数据使用`UPDATE`(修改)即可,删除数据使用`DELETE`(删除)即可,有了这几个基本语句,我们就可以很方便的处理很多数据。总之学好sql不论是对我们开发还是对数据的处理都是非常有用的。

更多关于数据库方面的操作和详细讲解,可以看下这个更直观的视频教程:网页链接,希望我的回答能帮到你!

⑼ sql server 2008的版本功能

SQL Server 2008出现在微软数据平台愿景上是因为它使得公司可以运行他们最关键任务的应用程序,同时降低了管理数据基础设施和发送观察和信息给所有用户的成本。
这个平台有以下特点:
· 可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。
· 高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。
· 智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。 一、可信任的
在今天数据驱动的世界中,公司需要继续访问他们的数据。SQL Server 2008为关键任务应用程序提供了强大的安全特性、可靠性和可扩展性。
(一)保护你的信息
在过去的SQL Server 2005的基础之上,SQL Server 2008做了以下方面的增强来扩展它的安全性:
简单的数据加密
SQL Server 2008可以对整个数据库、数据文件和日志文件进行加密,而不需要改动应用程序。进行加密使公司可以满足遵守规范和及其关注数据隐私的要求。简单的数据加密的好处包括使用任何范围或模糊查询搜索加密的数据、加强数据安全性以防止未授权的用户访问、还有数据加密。这些可以在不改变已有的应用程序的情况下进行。
外键管理
SQL Server 2008为加密和密钥管理提供了一个全面的解决方案。为了满足不断发展的对数据中心的信息的更强安全性的需求,公司投资给供应商来管理公司内的安全密钥。SQL Server 2008通过支持第三方密钥管理和硬件安全模块(HSM)产品为这个需求提供了很好的支持。
增强了审查
SQL Server 2008使你可以审查你的数据的操作,从而提高了遵从性和安全性。审查不只包括对数据修改的所有信息,还包括关于什么时候对数据进行读取的信息。SQL Server 2008具有像服务器中加强的审查的配置和管理这样的功能,这使得公司可以满足各种规范需求。SQL Server 2008还可以定义每一个数据库的审查规范,所以审查配置可以为每一个数据库作单独的制定。为指定对象作审查配置使审查的执行性能更好,配置的灵活性也更高。
(二)确保业务可持续性
有了SQL Server 2008,微软继续使公司具有提供简化了管理并具高可靠性的应用的能力。
改进了数据库镜像
SQL Server 2008基于SQL Server 2005,并提供了更可靠的加强了数据库镜像的平台。新的特性包括:
· 页面自动修复。SQL Server 2008通过请求获得一个从镜像合作机器上得到的出错页面的重新拷贝,使主要的和镜像的计算机可以透明的修复数据页面上的823和824错误。
· 提高了性能。SQL Server 2008压缩了输出的日志流,以便使数据库镜像所要求的网络带宽达到最小。
· 加强了可支持性
(1) SQL Server 2008包括了新增加的执行计数器,它使得可以更细粒度的对数据库管理系统(Database Management Syste,DBMS)日志记录的不同阶段所耗费的时间进行计时。
(2) SQL Server 2008包括动态管理视图(Dynamic Management View)和对现有的视图的扩展,以此来显示镜像会话的更多信息。
热添加CPU
为了在线添加内存资源而扩展SQL Server中的已有的支持,热添加CPU使数据库可以按需扩展。事实上,CPU资源可以添加到SQL Server 2008所在的硬件平台上而不需要停止应用程序。
(三)最佳的和可预测的系统性能
公司在面对不断增长的压力,要提供可预计的响应和对随着用户数目的增长而不断增长的数据量进行管理。SQL Server 2008提供了一个广泛的功能集合,使你的数据平台上的所有工作负载的执行都是可扩展的和可预测的。
性能数据的采集
性能调整和排除故障对于管理员来说是耗费时间的工作。为了给管理员提供全面的执行洞察力,SQL Server 2008推出了范围更大的数据采集,一个用于存储性能数据的新的集中的数据库,以及新的报表和监控工具。
扩展事件
SQL Server扩展事件是一个用于服务器系统的一般的事件处理系统。扩展事件基础设施是一个轻量级的机制,它支持对服务器运行过程中产生的事件的捕获、过滤和响应。这个对事件进行响应的能力使用户可以通过增加前后文关联数据,例如Transact SQL对所有事件调用堆栈或查询计划句柄,以此来快速的诊断运行时问题。事件捕获可以按几种不同的类型输出,包括Windows事件跟踪(Event Tracing for Windows,ETW)。当扩展事件输出到ETW时,操作系统和应用程序就可以关联了,这使得可以作更全面的系统跟踪。
备份压缩
保持在线进行基于磁盘的备份是很昂贵而且很耗时的。有了SQL Server 2008备份压缩,需要的磁盘I/O 减少了,在线备份所需要的存储空间也减少了,而且备份的速度明显加快了。
数据压缩
改进的数据压缩使数据可以更有效的存储,并且降低了数据的存储要求。数据压缩还为大型的限制输入/输出的工作负载例如数据仓库提供了显着的性能改进。
资源监控器
SQL Server 2008随着资源监控器的推出使公司可以提供持续的和可预测的响应给终端用户。资源监控器使数据库管理员可以为不同的工作负载定义资源限制和优先权,这使得并发工作负载可以为终端用户提供稳定的性能。
稳定的计划
SQL Server 2008通过提供了一个新的制定查询计划的功能,从而提供了更好的查询执行稳定性和可预测性,使公司可以在硬件服务器更换、服务器升级和产品部署中提供稳定的查询计划。 二、高效的
SQL Server 2008降低了管理系统、.NET架构和Visual Studio&reg; Team System的时间和成本,使得开发人员可以开发强大的下一代数据库应用程序。
(一)基于政策的管理
作为微软正在努力降低公司的总成本所作的工作的一部分,SQL Server 2008推出了陈述式管理架构(DMF),它是一个用于SQL Server数据库引擎的新的基于策略的管理框架。陈述式管理提供了以下优点:
· 遵从系统配置的政策
· 监控和防止通过创建不符合配置的政策来改变系统
· 通过简化管理工作来减少公司的总成本
· 使用SQL Server 管理套件查找遵从性问题
DMF是一个基于政策的用于管理一个或多个SQL Server 2008实例的系统。要使用DMF,SQL Server政策管理员使用SQL Server 管理套件创建政策,这些政策管理服务器上的实体,例如SQL Server的实例、数据库、和其它SQL Server对象。DMF由三个组件组成:政策管理、创建政策的政策管理员,和显式管理。管理员选择一个或多个要管理的对象,并显式检查这些对象是否遵守指定的政策,或显式地使这些对象遵守某个政策。
自动管理
政策管理员使用下面的执行模式之一,使政策自动执行:
· 强制——使用DDL触发器阻止违反政策的操作
· 对改动进行检查——当一个与某个政策相关的改动发生时,使用事件通知来评估这个政策
· 检查时间表——使用一个SQL Server Agent 工作定期的评估一个政策
(二)改进了安装
SQL Server 2008对SQL Server的服务生命周期提供了显着的改进,它重新设计了安装、建立和配置架构。这些改进将计算机上的各个安装与SQL Server软件的配置分离开来,这使得公司和软件合作伙伴可以提供推荐的安装配置。
(三)加速开发过程
SQL Server提供了集成的开发环境和更高级的数据提取,使开发人员可以创建下一代数据应用程序,同时简化了对数据的访问。
ADO .NET实体框架
在数据库开发人员中的一个趋势是定义高级的业务对象,或实体,然后他们可以将它们匹配到数据库中的表和字段,开发人员使用高级实体例如“客户”或“订单”来显示背后的数据。ADO .NET 实体框架使开发人员可以以这样的实体来设计关系数据。在这一提取级别的设计是非常高效的,并使开发人员可以充分利用实体关系建模。
语言级集成查询能力
微软的语言级集成查询能力(LINQ)使开发人员可以通过使用管理程序语言例如C#或Visual Basic .NET,而不是SQL语句来对数据进行查询。LINQ 使可以用.NET 框架语言编写的无缝和强大的面向集合的查询运行于ADO. NET(LINQ到SQL), ADO .NET 数据集(LINQ到数据集),ADO .NET 实体框架(LINQ到实体),和到实体数据服务匹配供应商。SQL Server 2008提供了一个新的LINQ到SQL供应商,使得开发人员可以直接将LINQ用于SQL Server 2008的表和字段。
CLR集成和ADO .NET对象服务
ADO .NET 的对象服务层使得可以进行具体化检索、改变跟踪、和实现作为公共语言运行时(CLR)的数据的可持续性。开发人员使用ADO .NET 实体框架可以通过使用由ADO .NET 管理的CLR对象对数据库进行编程。SQL Server 2008提供了提高性能和简化开发过程的更有效的和最佳的支持。
Service Broker可扩展性
SQL Server 2008继续加强了Service Broker 的能力。
· 会话优先权——使你可以配置优先权,使得最重要的数据会第一个被发送和进行处理。
· 诊断工具——诊断工具提高了你开发、配置和管理使用了Service Broker的解决方案的能力,例如在应用程序部署之前诊断分支丢失情况或配置不正确的安全问题。
Transact-SQL的改进
SQL Server 2008通过几个关键的改进增强了Transact-SQL编程人员的开发体验。
· Table Value Parameters – 在许多客户的场景中,要传递一个表结构的值(行)的集合到服务器上的一个存储过程或函数中。这些值可能直接用于插入表或更新表,或者是用于更复杂的数据操作。值为表的参数为定义一个表类型和使应用程序创建、赋值和传递表结构的参数到存储过程和函数中提供了更简单的方式。
· 对象相关性——对象相关性的改进通过新推出的种类查看和动态管理功能使能够可靠的找出对象间的相关性。相关性信息总是关于绑定架构和未绑定架构的对象的最新的信息。这个相关性会跟踪存储过程、表、视图、函数、触发器、用户定义的类型、XML schema集合和其他对象。
· 日期/时间数据类型——SQL Server 2008推出了新的日期和时间数据类型:
(1) DATE——一个只包含日期的类型,只使用3个字节来存储一个日期
(2) TIME——一个只包含时间的类型,只使用3到5个字节来存储精确到100纳秒时间
(3) DATETIMEOFFSET – 一个可辨别时区的日期/时间类型
(4) DATETIME2 ——一个具有比现有的DATETIME类型更精确的秒和年范围的日期/时间类型
新的数据类型使应用程序可以有单独的日期和时间类型,同时为用户定义的时间值的精度提供较大的数据范围。
(四)偶尔连接系统
有了移动设备和活动式工作人员,偶尔连接成为了一种工作方式。SQL Server 2008推出了一个统一的同步平台,使得在应用程序、数据存储和数据类型之间达到一致性同步。在与Visual Studio 的合作下,SQL Server 2008使得可以通过ADO .NET中提供的新的同步服务和Visual Studio中的脱机设计器快速的创建偶尔连接系统。SQL Server 2008提供了支持,使得可以改变跟踪和使客户可以以最小的执行消耗进行功能强大的执行,以此来开发基于缓存的、基于同步的和基于通知的应用程序。
(五)不只是关系数据
应用程序正在结合使用越来越多的数据类型,而不仅仅是过去数据库所支持的那些。SQL Server 2008基于过去对非关系数据的强大支持,提供了新的数据类型使得开发人员和管理员可以有效的存储和管理非结构化数据,例如文档和图片。还增加了对管理高级地理数据的支持。除了新的数据类型,SQL Server 2008还提供了一系列对不同数据类型的服务,同时为数据平台提供了可靠性、安全性和易管理性。这篇白皮书的下一章节将介绍非关系数据存储的一些优点。
HIERARCHY ID
SQL Server 2008使数据库应用程序以比以前更有效的方式建立树结构。HierarchyId是一个新的系统类型,它可以存储一个层次树中显示的结点的值。这个新的类型提供了一个灵活的编程模型。它作为一个CLR用户定义的类型(UDT)来执行,它提供了几种用于创建和操作层次结点的有效的及有用的内置方法。
FILESTREAM数据
新的SQL Server 2008 FILESTREAM 数据类型使大型的二进制数据,像文档和图片等可以直接存储到一个NTFS文件系统中;文档和图片仍然是数据库的主要组成部分,并维护事务的一致性。
FILESTREAM 使传统的由数据库管理的大型二进制数据可以作为单独的文件存储在数据库之外,它们可以通过使用一个NTFS流API进行访问。使用NTFS流API使普通文件操作可以有效的执行,同时提供所有丰富的数据库服务,包括安全和备份。
集成的全文检索
集成的全文检索使得在全文检索和关系数据之间可以无缝的转换,同时使全文索引可以对大型文本字段进行高速的文本检索。
稀疏列
这个功能使NULL数据不占物理空间,从而提供了一个非常有效的管理数据库中的空数据的方法。例如,稀疏列使得一般包含极多要存储在一个SQL Server 2008数据库中的空值的对象模型不会占用很大的空间。稀疏列还允许管理员创建1024列以上的表。
大型的用户定义的类型
SQL Server 2008删除了对用户定义的类型的8,000字节的限制,使用户可以显着的扩大他们的UDT的规模。
地理信息
SQL Server 2008为在基于空间的应用程序中消耗、扩展和使用位置信息提供了广泛的空间支持。
· 地理数据类型
这个功能使你可以存储符合行业空间标准例如开放地理空间联盟(Open Geospatial Consortium,OGC)的平面的空间数据。这使得开发人员可以通过存储与设计的平面表面和自然的平面数据例如内部空间等相关联的多边形、点和线来实现“平面地球”解决方案。
· 几何数据类型
这个功能使你可以存储地理空间数据并对其执行操作。使用纬度和经度的组合来定义地球表面的区域,并结合了地理数据和行业标准椭圆体(例如用于全球GPS解决方案的WGS84)。 三、智能的
商业智能(BI)继续作为大多数公司投资的关键领域和对于公司所有层面的用户来说的一个无价的信息源。SQL Server 2008提供了一个全面的平台,用于当用户需要时你可以为其提供智能化。
(一)集成任何数据
公司继续投资于商业智能和数据仓库解决方案,以便从他们的数据中获取商业价值。SQL Server 2008提供了一个全面的和可扩展的数据仓库平台,它可以用一个单独的分析存储进行强大的分析,以满足成千上万的用户在几兆字节的数据中的需求。下面是SQL Server 2008中在数据仓库方面的一些优点。
数据压缩
数据仓库中的数据容量随着操作系统数目的快速增加而在持续增长。内嵌在SQL Server 2008中的数据压缩使得公司可以更有效的存储数据,同时还提高了性能,因为降低了I/O 要求。
备份压缩
保持一直在线做基于磁盘的备份是花费很昂贵的,并且很耗时。有了SQL Server 2008的备份压缩,保持在线备份所需的存储降低了,并且备份速度明显变快了,因为所需要的磁盘I/O 减少了。
分区表并行
分割使公司能够更有效的管理大型的、不断增长的数据表,只要简单的将它们分割为易管理的数据块。SQL Server 2008是在SQL Server 2005中的分割的优势之上建立的,它改进了对大型的分区表的操作性能。
星型联接查询优化器
SQL Server 2008为普通的数据仓库场景提供了改进的查询性能。星型联接查询优化器通过辨别数据仓库连接模式降低了查询响应时间。
资源监控器
SQL Server 2008随着资源监控器的推出,使公司可以给终端用户提供一致的和可预测的响应。资源监控器使公司可以为不同的工作负载定义资源限制和优先权,这使得并发工作负载可以提供稳定的性能。
分组设置
分组设置(GROUPING SETS)是对 GROUP BY 条件语句的扩展,它使得用户可以在同一个查询中定义多个分组。分组设置生成一个单独的结果集,这个结果集相当于对不同分组的行进行了UNION ALL 的操作,这使得聚合查询和报表更加简单和快速。
捕获变更数据
有了捕获变更数据,变更会被捕获并被放在变更表中。它捕获变更的完整内容,维护交叉表的一致性,甚至是对交叉的schema变更也起作用。这使得公司可以将最新的信息集成到数据仓库中。
MERGESQL语句
有了MERGE SQL 语句,开发人员可以更有效地处理数据仓库的场景,例如检查一行数据是否存在然后执行插入或更新。
可扩展的集成服务
集成服务的可扩展性方面的两个关键优势是:
· SQL Server集成服务 (SQL Server Integration Services,SSIS)管道改进
数据集成包现在可以更有效地扩展、使用有效的资源和管理最大的企业级的工作负载。这个新的设计将运行时间的可扩展性提高到多个处理器中。
· SSIS持久查找
执行查找是最常见的抽取、转换和加载(ETL)操作。这在数据仓库中尤为普遍,当实际记录必须使用查找来转换业务键到它们相应的替代中去时。SSIS 增强了查找的性能以支持大型表。
(二)发送相应的报表
SQL Server 2008提供了一个可扩展的商业智能基础设施,使得IT人员可以在整个公司内使用商业智能来管理报表以及任何规模和复杂度的分析。SQL Server 2008使得公司可以有效的以用户想要的格式和他们的地址发送相应的、个人的报表给成千上万的用户。通过提供了交互发送用户需要的企业报表,获得报表服务的用户数目大大增加了。这使得用户可以获得对他们各自领域的洞察的相关信息的及时访问,使得他们可以作出更好、更快、更符合的决策。SQL Server 2008使得所有的用户可以通过下面的报表改进之处来制作、管理和使用报表:
企业报表引擎
有了简化的部署和配置,可以在企业内部更简单的发送报表。这使得用户能够轻松的创建和共享所有规模和复杂度的报表。
新的报表设计器
改进的报表设计器可以创建广泛的报表,使公司可以满足所有的报表需求。独特的显示能力使报表可以被设计为任何结构,同时增强的可视化进一步丰富了用户的体验。
此外,报表服务2008使商业用户可以在一个可以使用Microsoft Office的环境中编辑或更新现有的报表,不论这个报表最初是在哪里设计的,从而使公司能够从现有的报表中获得更多的价值。
强大的可视化
SQL Server 2008扩展了报表中可用的可视化组件。可视化工具例如地图、量表和图表等使得报表更加友好和易懂。
Microsoft Office渲染
SQL Server 2008提供了新的Microsoft Office渲染,使得用户可以从Word里直接访问报表。此外,现有的Excel&reg; 渲染器被极大的增强了,它被用以支持像嵌套数据区域、子报表和合并单元格等功能。这使得用户可以维护显示保真度和改进Microsoft Office应用中所创建的报表的全面可用性。
Microsoft SharePoint&reg; 集成
SQL Server 2008报表服务将Microsoft Office SharePoint Server 2007和Microsoft SharePoint Services 深度集成,提供了企业报表和其它商业洞察的集中发送和管理。这使得用户可以访问包含了与他们直接在商业门户中所做的决策相关的结构化和非结构化信息的报表。
(三)使用户获得全面的洞察力
及时访问准确信息,使用户快速对问题、甚至是非常复杂的问题作出反应,这是在线分析处理的前提(Online Analytical Processing,OLAP)。SQL Server 2008基于SQL Server 2005强大的OLAP能力,为所有用户提供了更快的查询速度。这个性能的提升使得公司可以执行具有许多维度和聚合的非常复杂的分析。这个执行速度与Microsoft Office的深度集成相结合,使SQL Server 2008可以让所有用户获得全面的洞察力。SQL Server分析服务具有下面的分析优势:
设计为可扩展的
SQL Server 2008加强了分析能力和提供了更复杂的计算和聚合,使得能进行的分析更宽广。新的立方体设计工具帮助用户将分析基础设施的开发工作流线化,使他们可以为优化性能建立解决方案。这个设计里内嵌了Best Practice Design Alerts,使得开发人员可以在设计时集成实时警告,这优化了设计。Dimension Designer使得可以简单的查看和编辑属性关系,还可以提供多个内置的对理想尺度设计的支持的验证,而在数据挖掘结构中增强的灵活性使得可以创建多个不同的模型,而不仅仅是过滤数据。
块计算
块计算提供了一个在处理性能方面的显着提高,使得用户可以增加他们的层级深度和计算的复杂度。
回写到MOLAP
SQL Server 2008分析服务中的新的基于MOLAP 的回写功能使得不再需要查询ROLAP 分区。这给用户提供了更强的用于分析应用程序中的回写设定,而不需要以OLAP 性能为代价。
资源监控器
在SQL Server 2008中一个新的资源监控器提供了对资源利用情况的详细观察。有了这个资源监控器,数据库管理员可以快速并轻松的监控和控制分析工作负载,包括识别哪个用户在运行什么查询和他们会运行多久,这使得管理员可以更好的优化服务器的使用。
预测分析
一个改进的时间序列算法扩大了预测能力。这个查询数据挖掘结构的能力使得报表可以很容易的包含从挖掘模型的外部得来的属性。新的交叉验证特性对数据进行多处对比,发送给你可靠的结果。这些数据挖掘的改进之处一起为更好的洞察和更丰富的信息提供了机会。