设为首页 收藏本站
查看: 978|回复: 0

[经验分享] SQL Server 2012安全性:功能更新

[复制链接]

尚未签到

发表于 2018-10-18 08:59:00 | 显示全部楼层 |阅读模式
  本系列关于SQL Server安全的文章共分四部分。本文是第二部分,将重点介绍SQL Server 2012中的安全性更新。在第一部分中,我们对SQL Server安全问题进行了案例研究。
  数据库基础架构的安全对于任何组织来说都是及其重要的,这也正是微软公司近几年在SQL Server安全功能方面投入巨大的原因。微软公司为SQL Server 2005重新设计了数据库安全引擎,从那时起,SQL Server安全在每次更新都会有所提升。
  SQL Server 2012继续延续了这个趋势,增加了许多安全功能和增强功能。这些增强功能不只可以帮助组织改善数据访问控制,而且可以实现最高级别的数据保护和遵守。另外,这些功能还使得SQL Server成为了从安全角度看不容辩驳的最强大的通用数据库平台,漏洞更少,维护系统需要的安全补丁也更少。
  安全可管理性改善
  SQL Server 2012引入了两个比较小但是非常有价值的变更来改善安全可管理性。第一个特性是Windows组的默认模式,第二个特性是用户定义的服务器角色。
  Windows组默认模式
  在SQL Server 2012引入之前,我们不可能为Windows组指定默认模式。这样一来,当用户通过Windows组成员获得访问时,SQL Server会自动创建一个独立用户(与admin账户映射),并会在数据库中创建同名模式。由于这一安全可管理性问题,最后数据库中出现了数百个用户和模式,这就给管理工作带来了困难,对管理员也是一场噩梦。所以,SQL Server社区通过微软公司连接站点发起请求要求修复这一安全问题。
  幸运的是,SQL Server 2012解决了这个安全问题,它允许我们为Windows组赋给默认模式,这就帮助组织简化了他们的数据库对象管理。
  下面的Transact SQL(T-SQL)证明了Windows组默认对象赋值过程:
  -- Creating Default Schema "ProdAdmins" for Windows Group "MyDomain\ProdDBAs"
  CREATE SCHEMA [ProdAdmins] AUTHORIZATION [MyDomain\ProdDBAs]
  GO
  -- Set Default Schema for Windows Group "MyDomain\ProdDBAs"
  ALTER USER [MyDomain\ProdDBAs] WITH DEFAULT_SCHEMA=[ProdAdmins]
  GO
  用户定义的服务器角色
  用户定义的服务器角色与固定服务器角色类似:唯一差异在于它们是由SQL Server管理员创建和管理的。用户定义的角色允许管理员们创建和分配服务器范围权限给用户定义角色,然后给他们添加成员。下面的T-SQL返回这些服务器权限列表:
  USE [master]
  GO
  SELECT * FROM sys.fn_builtin_permissions(DEFAULT)
  WHERE [class_desc] IN ('ENDPOINT'
  ,'LOGIN'
  ,'SERVER'
  ,'AVAILABILITY GROUP'
  ,'SERVER ROLE')
  ORDER BY [class_desc], [permission_name]
  GO
  用户定义角色的主要优点在于它们通过按照职责划分限制授权用户访问简化了DBA工作。
  我们可以通过T-SQL或者通过SQL Server管理工具(SSMS)来创建和管理用户定义角色,请看下面演示。
  使用SSMS创建用户定义角色
  ◆在对象浏览器中,展开SQL Server实例,然后展开“安全”文件夹。
  ◆右击“服务器角色”文件夹,然后点击菜单“新建服务器角色”,运行“新建服务器角色”向导。

  ◆在“常规”页,指定服务器角色的名称,所有者以及适当的安全对象。

  ◆点击“成员”打开成员页面,然后给你定义的服务器角色添加成员。www.bfuleye.com

  ◆最后,点击“成员组”页面,在这里你可以把新建的服务器角色作为一个成员,添加到现存的服务器角色中。

  使用T-SQL创建用户定义角色

  我们可以使用“CREATE SERVER ROLE,>  -- Creating user-defined roles
  CREATE SERVER ROLE [JuniorDBA]
  -- Granting server-wide permissions
  GRANT CREATE ANY DATABASE TO [JuniorDBA]
  -- Adding members to user-defined roles
  ALTER SERVER ROLE [JuniorDBA]
  ADD MEMBER [Domain\JuniorDBA_Group1]
  ALTER SERVER ROLE [JuniorDBA]
  ADD MEMBER [Domain\JuniorDBA_Group1]
  -- Making user-defined role member of fixed server role
  ALTER SERVER ROLE [processadmin]
  ADD MEMBER [JuniorDBA]
  -- Dropping user-defined roles
  DROP SERVER ROLE [JuniorDBA]
  SQL Server审计增强功能
  在SQL Server 2008和SQL Server2008 R2中增加了服务器和数据库审计具体规范功能,这是SQL Server中最有用的功能特性,可以帮助组织满足各种法规遵从需求,但这些审计功能只有企业版才支持。
  幸运的是,服务器级别的审计规范特性目前在SQL Server 2012的所有版本中都支持了。SQL Server 2012的审计规范功能对于写审计日志的失败更富弹性,可以支持限制审计日志的数量,无需设置回滚日志。SQL Server 2012审计规范特性还支持用户定义组,这意味着我们现在可以给审计日志中写审计事件,使用“ sp_audit_write (Transact-SQL) ”存储过程就能做到。最后,SQL Server 2012支持过滤审计事件,包括新增审计组来监视其包含的数据库用户。
  数据库认证功能增强
  在SQL Server 2012之前,用户需要用windows或者SQL登录SQL Server数据库引擎进行数据库身份验证。很明显,当从一个SQL Server实例向另一个实例迁移时,这种依赖会引起认证问题,而数据库管理员不得不确保所有可以登录源SQL Server的用户也存在于目标SQL Server。如果由于某种原因,在目标SQL Server上登录用户不存在,那么用户就不能通过数据库登录验证了。
  SQL Server 2012通过引入内含数据库验证来解决这个问题,它支持用户认证到数据库,而无需登录SQL Server。所有包含数据库认证的元数据被存储在数据库本身内部。内含数据库认证的另一个优势是它消除了孤立或未使用登录信息在SQL Server数据库引擎中存在的可能性


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-623019-1-1.html 上篇帖子: Microsoft SQL Server 2005 Database Encryption Step-by-Step 下篇帖子: SQL SERVER 2005 CTE(通用表达式)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表