45. SQL- 安全性之策略管理

SQL 策略管理

策略管理是SQL Server 2008 中的一个新特性,用于管理数据库实例、数据库以及数据库对象的各种属性。在这种管理下,用户基于策略管理获取两个方面是应用:有效评估、监视以及管理应用。而在有效的管理应用条件下,安全是最为重要的,下面针对策略管理的安全性进行实战。

管理策略的安全性

属于Policy Administrator Role 的成员才可以制定和修改策略定义,这个角色的成员是必须要小心控制的,因为恶意用户可以通过制定苛刻的策略来达到类似于拒绝服务攻击的效果,这个方面与其他数据库相类似

打开management studio → 管理 → 策略管理

从图中可以看到,策略管理中包含三个节点:策略、条件、方面。

方面:

就是策略要应用的对象,包括:服务器、表、触发器、视图、存储过程这些方面对象都是系统定义好了的,仅供瞻仰不可更改。双击具体的某一个方面可以查看该方面的属性,在定义条件时即可对这些属性进行判断,如图为存储过程方面的属性。

条件:

条件就是一个布尔表达式判断策略是否为真。

策略:

策略就是在条件为假的情况下要执行的操作,即评估模式。策略中的评估模式有

4 种:按需、按计划、更改时记录和更改时禁止。对于这4 种模式,定义如下:

按需:当用户直接指定这种模式时,它可对策略进行评估。

更改时: 禁止:这种自动模式使用DDL 触发器来防止违反策略。

更改时: 仅记录:当发生相关更改并违反日志策略时,这种自动模式使用事件通知对策略进行评估。

按计划。这种自动模式使用SQL Server 代理作业定期对策略进行评估。此模式记录违反策略的情况。

其中按需是手动操作的,其他三个则可以自动完成。按计划是使用SQLServer 代理

来定时检查策略,另外两个是在更改时由DDL 触发器触发。

策略管理建及

A、基于策略管理的常规配置步骤为:

DEMO1:要求所创建的存储过程必须加密

--1、创建条件

打开management studio → 管理 → 策略管理 → 条件 → 右键 → 新建条件

定义创建条件的名称/该条件针对的对象(方面)/表达式

在此我们需要要求创建存储过程时强制加密,表达式为:

@Isencrypted = true

--2、创建一个策略

打开management studio → 管理 → 策略管理 → 策略 → 右键 → 新建策略

定义策略的名称/所检查的条件

--3、启用该策略

策略创建好之后,默认是没有启用的。我们必须通过菜单进行启用

--4、测试,创建一个不加密的存储过程

create proc pr_name

as

print ‘hello‘

go

--返回结果:

“SQLSERVER:\SQL\SQL2008\DEFAULT\Databases\mydb\StoredProcedures\dbo.pr_name‖已违反策略

―proc_encryption‖。

此事务将回滚。

策略条件:―@IsEncrypted = True()‖

策略说明:―‖

其他帮助:―‖:―‖

语句:―

create proc pr_name

as

print ‘hello‘

‖。

消息3609,级别16,状态1,过程sp_syspolicy_dispatch_event,第65 行

事务在触发器中结束。批处理已中止。

创建一个加密的存储过程:

create proc pr_name

with encryption

as

print ‘hello‘

go

--返回:命令已成功完成。

--5、使用评估功能

可对所创建的存储过程进行评估,是否满足条件选择创建好的存储过程 → 右键 → 策略 → 评估勾选策略,点击评估。

若满足条件:返回如下结果查看详细信息:

若不满足条件,返回如下结果:查看详细信息:

--6、策略的导出及导入

导出策略:

选中创建好的策略,点击右键,选择导出策略:

导入策略:

在策略管理下,的策略选项上,点击右键,选择导入策略选择需导入的文件:

DEMO2:创建一个策略,要求MYDB 数据库中创建的所有存储过程命名均是以pc_开头

--1、创建条件

输入“条件”的名称:“proc_name”,然后字段列表中选择@Name,运算符为LIKE,值为‘pc[_]%‘。也就是判断存储过程的名字LIKE‘pc[_]%‘,也就是以“pc_”开头的SQL 表达。

这里字段和值都可以使用变量和函数,如果允许“PC_”、“Pc_”等开头的存储过程,则可以将字段运用小写函数,改写为“Lower(@Name)”,然后单击“确定”按钮,创建“条件”完成

--2、创建策略

右击“策略”节点,在右键菜单中选“新建策略”选项,系统将打开新建策略窗口,输入策略名“proc_name”,在检查条件的下拉列表中选择刚创建的条件“proc_name”,系统将根据选择的检查条件列出针对目标,默认情况下是对每个数据库的每个存储过程进行检查,由于这里我们只希望检查MYDB 数据库,所以需要新建数据库的条件,如图:选择新建条件:

由于仅针对于mydb 数据库,此处方面选择“数据库”,表达式中,字段选择“@Name”,运算符选择“=”,值则定义为“mydb”数据库

单击“确定”按钮回到新建策略窗口,针对目标变成了对MYDB 数据库的每个存储过程。

这里若要强制实现这个策略,则选择评估模式为“更改:禁止”并选中“已启用”复选框表示启用该策略。

单击“说明”选择页,可以在其中选择策略的类别、在违反策略时给出的友好说明。最后单击“确定”按钮即可完成策略的创建工作。

--3、测试,创建一个命名以pr_开头的存储过程:

create proc pr_na

with encryption

as

print ‘hello‘

go

--返回结果:

“SQLSERVER:\SQL\SQL2008\DEFAULT\Databases\mydb\StoredProcedures\dbo.pr_na‖已违反策略―proc_name‖。

此事务将回滚。

策略条件:―@Name LIKE ‘pc[_]%‘‖

策略说明:―‖

其他帮助:―‖:―‖

语句:―--ENCRYPTED--‖。

消息3609,级别16,状态1,过程sp_syspolicy_dispatch_event,第65 行

事务在触发器中结束。批处理已中止。

创建一个命名以pc_开头的存储过程

create proc pc_na

with encryption

as

print ‘hello‘

go

--返回结果:

命令已成功完成。

时间: 2024-11-06 19:25:28

45. SQL- 安全性之策略管理的相关文章

Sql复习之安全性与权限管理+vmware增加硬盘容量

参考资料: http://www.cnblogs.com/Jackeyzhang/archive/2011/05/18/2049621.html VmWare虚拟机增加硬盘容量的方法 http://blog.csdn.net/superchanon/article/details/8255566 DOS中切换盘符(直接CD不行) ? 参考资料:http://blog.csdn.net/songyuhongnannan/article/details/7279070 SQLServer 角色与权限

SQL Server 2008新特性——策略管理

从图中可以看到,策略管理中包含三个节点:策略.条件.方面. 方面就是策略要应用的对象,包括:服务器.表.触发器.视图.存储过程……这些方面对象都是系统定义好了的,仅供瞻仰不可更改.双击具体的某一个方面可以查看该方面的属性,在定义条件时即可对这些属性进行判断,如图为存储过程方面的属性. 条件就是一个布尔表达式判断策略是否为真. 策略就是在条件为假的情况下要执行的操作,即评估模式.策略中的评估模式有4种:按需.按计划.更改时记录和更改时禁止.对于这4种模式,官方给出如下定义: •按需.当用户直接指定

2. Magicodes框架之路——策略管理

闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则是为了实现某些功能或者处理某些特定问题而制定的通用方案或者规则.粗浅一点,你可以理解为XXOO这种方式,不管用啥姿势,归根到底都离不开活塞运动. 如果还不明白,我们举个文明点的例子,比如发送短信,这是系统中常用的功能,也许短信服务商有很多,实现发短信的方式也有很多,但是对于系统来说,只需要的是发送短

如何批量部署Office 2013 (五)——使用组策略管理Office

本节内容将为您介绍如何使用组策略管理Office,方法如下: 1.登录到DC中,找到C:\Windows\SYSVOL\domain\Policies目录,建立一个名为PolicyDefinitions的文件夹 2.将Office 2013的组策略模板拷贝到这个文件夹下 3.打开AD用户和计算机,将目标计算机和用户移动到Office这个OU中 4.按下Windows+R打开运行窗口输入gpmc.msc回车 5.右键点击Office 2013这个组策略对象,点击"编辑" 6.展开&quo

组策略管理IE兼容性列表

场景:需要将某些内网/外网地址增加到所有客户端的IE兼容性列表中 实现方法:通过注册表修改,做成bat文件,通过组策略下发: 对于现在IT架构健全的公司,这条组策略设置有时候非常必要.网上关于这个的内容比较少,就分享一下自己的做法. 首先找台客户端,以XP+IE8为例子,点开兼容性视图列表,手动加入需添加的网址 接下来打开注册表,兼容性设置的注册表键值位于 HKEY_CURRENT_USER|Software\Microsoft\Internet Explorer\BrowserEmulatio

2.MagicCode框架之路——策略管理

闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则是为了实现某些功能或者处理某些特定问题而制定的通用方案或者规则.粗浅一点,你可以理解为XXOO这种方式,不管用啥姿势,归根到底都离不开活塞运动. 如果还不明白,我们举个文明点的例子,比如发送短信,这是系统中常用的功能,也许短信服务商有很多,实现发短信的方式也有很多,但是对于系统来说,只需要的是发送短

《SQL Server企业级平台管理实践》读书笔记——SQL Server如何设置自动增长和自动收缩项

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server如何设置自动增长和自动收缩项 SQL Server允许用户设置数据库初始值和最大值,可以通过自动增长或者自动收缩进行配置.通过这些配置,我们可以防止数据库空间问题而导致的应用程序修改失败或者SQL Server磁盘空间耗尽的事情发生.一般来讲,如果数据库不是很忙,默认的设置为自动增长,这种方式能够满足大部分的需求.但是在大量并发的情况下,申请数据文件和日志文件增长本身是一件非常消耗系统资源和影响性能的工作.所以如果

[译]SQL Passion Week 3: SQL Server的扇区管理

SQL Passion Week 3: SQL Server的扇区管理 混合扇区和统一扇区 SQL Server中每8个数据页作为一个扇区. 在混合扇区中, 其包含的8个页可以分别属于不同的数据库对象; 另一方面, 统一扇区里的8个页都属于同一个数据库对象. 为什么有这样一个区别呢, 这其实主要是因为一个历史遗留问题.  因为在上个世纪, 存储是非常昂贵的, 人们会尽可能有效的充分利用存储空间. 当一个表和索引最初创建时, 总是创建在一个混合扇区上, 先在8kb的空间里进行增长. 这样, 小的表

《SQL Server企业级平台管理实践》读书笔记——SQL Server中收缩数据库不好用的原因

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server中收缩数据库不好用的原因 数据库管理员有时候需要控制文件的大小,可能选择收缩文件,或者把某些数据文件情况以便从数据库里删除. 这时候我们就要使用到DBCC SHRINKFILE命令,此命令的脚本为: DBCC SHRINKFILE ( { file_name | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATE