
SQL Server 可用性
三空道人
在某互联网在线娱乐上市公司,从事SQL Server、MYSQL数据库管理、及数据分析、审计相关工作
展开
-
SQL Server 动态数据掩藏(Dynamic Data Masking)探索和实施
动态数据掩藏(DDM)是SQL Server 2016 CTP 2.1引入的新功能数据库加密技术本质上改变了数据存储结构,而DDM只是在返回客户端的时候对数据进行隐藏。sysadmin的成员登陆账户或者db_owner角色的用户有查看DDM数据的权限。数据库迁移助手评估DDM候选者您的数据库包含需要对终端用户掩藏的数据,但是您并不能确定哪些列为Dynamic Data Masking(DDM)候选者。我们如何确认这些列并实施DDM来保护这些数据?您可以使用Databa...原创 2020-09-24 17:23:21 · 1147 阅读 · 0 评论 -
如何在SSMS中查看Always Encrypted 加密列的解密数据
通常情况下,我们在SSMS客户端看到Always Encrypted 加密列的数据都是密文的。那么是否可以查看解密后的数据呢?如何配置才能实现呢?本文将阐述该过程的实现。要在SSMS客户端查看Always Encrypted加密列解密后的数据,需要三个前提: 对应数据库需要合适的权限 客户端所在计算机安装Always Encrypted证书 设置连接属性 权限设置要查看数据,对象SELECT权限是必要的,其次要有查看列主秘钥和列加密秘钥的权限--创建登陆账户.原创 2020-09-10 10:31:53 · 968 阅读 · 0 评论 -
SQL Server Always Encrypted
过去SQL Server有多种加密数据的方式,如透明数据加密(TDE)。这种技术是在数据库文件或者备份被盗用时,保护静态数据。然而对于可以访问数据库本身,或者任何拥有数据库的用户,可以获取秘钥、证书和密码(系统管理员、黑客诸如此类),是没有效果的。SQL Server 2016新引入了Always Encrypted 功能,其设计的目的即时保护敏感数据,如手机号、身份证、银行卡号等等,可以同时加密静态和动态数据(内存中的数据也会被加密)。因此,这可以保护数据免受流氓管理员、备份窃贼和中间人攻击。和TDE原创 2020-08-28 10:25:12 · 2142 阅读 · 5 评论 -
SQL Server 安全漏洞评估工具
为避免SQL Server遭受攻击,组织必须不断评估数据库系统来确定是否存在漏洞。这是一种有效的主动防御方法,用于分析数据库中的潜在漏洞及其与标准设置的偏差,如太大的权限、敏感数据的暴露、错误配置等。这也是满足遵循法规的需求。安全合规,辨别确认安全漏洞对组织来说是非常重要的。一些可能的数据库漏洞: 用户和组权限过大 敏感数据,如信用卡、银行账户等 SQL注入 实例或数据库配置 孤立数据库用户、角色或组 此前,使用SQL Server,我们需要使用自定义.原创 2020-08-18 17:59:10 · 1337 阅读 · 0 评论 -
SQL Server 对称密钥在数据加密中的应用
3月19日,网上爆出微博数据泄露。微博方亦迅速回应,表示数据泄露属实。微博表示一直有提供根据通讯录手机号查询微博好友昵称的服务,用户授权后可以使用该服务。但微博不提供用户性别和身份证号等信息,也没有“根据用户昵称查手机号”的服务。因此这起数据泄露不涉及身份证、密码,对微博服务没有影响。目前微博已经及时强化安全策略,并将不断强化。相对来说此次数据泄露引起的危险性不大,不过又引起了我们对数据安全和隐私的关注,且近几年重大的数据泄露事件不断,数据泄露带来的影响也是不可估量的,这足以引起我们原创 2020-05-20 13:23:22 · 2133 阅读 · 0 评论 -
SQL Server还原透明加密(TDE)数据库遇到的错误
错误1:请在数据库中创建一个主密钥或在会话中打开该主密钥执行 Transact-SQL 语句或批处理时发生了异常。在执行此操作之前,请在数据库中创建一个主密钥或在会话中打开该主密钥。错误号: 15581严重性: 16状态: 3行号: 1发生这个错误有三种情况: 确实没有创建数据库主秘钥 创建了主秘钥,但是有使用ALTERMASTERKEYDROPE...原创 2020-04-26 16:15:09 · 1877 阅读 · 0 评论 -
SQL Server 2008 新增的透明数据加密功能(TDE)
在任何组织中,安全都是备受关注的。数据库备份很可能会被盗,并且可以在任何等同于或高于备份数据库版本的SQL Server实例下进行还原。当我们查看SQL Server 2008新功能时,我们发现一个可能很有趣的功能,被称为透明加密,其可以用来加密我们的数据库备份。你想了解一下该如何使用这个新功能吗?SQL Server 2008版本开始,新增了透明数据加密Transparent Data En...原创 2020-03-29 19:12:52 · 1173 阅读 · 0 评论 -
SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别
在SQL Server数据库登陆账户、数据库用户权限管理中,经常会授予权限、回收权限,有时还会拒绝权限。GRANT、REVOKE是我们常用的,但有时会遇到使用DENY的情形。从英文单词的字面意思来看,GRANT是赋予权限,REVOKE是收回我们已经授予的权限;而DENY是禁掉某个权限。这三者内部到底有什么联系、区别?什么情景下使用GRANT?什么情景下使用REVOKE?什么情景下使用DENY?单独...原创 2020-03-07 22:40:54 · 11697 阅读 · 2 评论 -
小心被你的同事填坑
每个人都在各自权限内做事,循规蹈矩,那么将万事大吉。但当有人越权处理事情时,尤其当你不知道他在行使你的权利时,那么事情将变得非常糟糕。作为一个数据库管理员,给同事创建数据库账户并分配合适的权限,是DBA工作中不可或缺的一部分。当你给了不合适的权限,而又没有做辅助的审计措施,那么很不幸的告诉你,你将可能成为一个背锅人。下面我将通过三个场景,分享SQL Server数据库账户做越权的勾当。情...原创 2020-03-04 11:35:14 · 349 阅读 · 0 评论 -
解决因SQL Server数据库引用程序集而不得不开启trustworthy方法
前文中提到有提到,当SQL Server 数据库开启trustworthy时,存在着用户提升权限的风险。那么,我们是不是直接查出开启trustworthy的数据库,将其关闭就解决风险了呢?如下脚本可以直接关闭实例下所有开启trustworthy数据库的trustworthy属性:use mastergodeclare @sql varchar(max) set @sql=''...原创 2020-03-05 15:18:32 · 3020 阅读 · 0 评论 -
SQL Server 中sa账号的安全管理
对于众所周知账户,如Windows的administrator账户,SQL Server 的sa账户,我们都需要确认其是否安全。下面我们给出加强sa账户安全的四种方案: 给sa强密码 修改sa名称 禁用sa账户 只使用Windows登陆验证 如下给出前三种加强sa账户安全的脚本:use mastergo--给sa强密码alter login s...原创 2020-03-01 21:49:28 · 1202 阅读 · 0 评论 -
创建SQL Server 身份验证登陆账户
SQL Server中共有四种类型的登陆名: SQL Server 身份验证登录名 Windows 身份验证登录名 证书映射登录名 非对称密钥映射登录名 本文主要描述常用的SQL Server 身份验证登录名的创建方式及相关内容。创建SQLServer 身份验证登陆名创建SQL Server身份验证登陆名有两种赋予密码的方式 以字...原创 2020-02-29 09:57:45 · 8657 阅读 · 0 评论 -
删库跑路又发生了!微盟系统惨遭运维破坏,宕机36小时
删库容易跑路难,近日,又有一起删库跑路事件发生!来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除。目前微盟技术团队正在努力恢复数据,但数据恢复较慢。目前对新用户服务已经恢复正常,但老用户数据官方预计要到2月28日才有结果……微盟是一家什么样的企业?微盟是一家从事智能商业生态的互联网多元化集团企业。早期主要业务是上海...转载 2020-02-26 09:56:49 · 2240 阅读 · 0 评论 -
SQL Server 账户、数据库用户管理实战指南
作为一名SQL Server数据库DBA,你有责任保证你的SQL Server数据库的安全。最近写了一系列博文分别阐述了SQL Server 账户、数据库用户安全管理的各个点,但是感觉很零散,我们不能很好的get到如何安全管理SQL Server账户、数据库用户这个面。本文将把各个点汇集成面,希望能够在我们脑中构建出管理SQL Server账户、数据库用户的全局框架。SQL Server账户...原创 2020-03-16 11:41:31 · 784 阅读 · 0 评论 -
SQL Server 中的动态SQL 和所有权链
像前文一样,我试图使用所有权链,但似乎并不能正常运行。在我的案例中,我在存储过程中创建执行一个拼接SQL(动态SQL),然后使用EXEC 或者 EXEC sp_executesql。然而,当我执行字符串时,我一直收到拒绝访问的错误。两个对象在同一个架构下,每一个对象都没有显示指定拥有者。我哪里做错了呢?无论什么时候你使用EXEC 或者 EXEC sp_executesql执行SQL 字符串时,...翻译 2020-02-20 12:40:09 · 258 阅读 · 0 评论 -
所有权链是SQL Server安全特性或安全风险
译自 K. Brian Kelley的博文我听说过,SQL Server内部存在某种被称为“所有权链”的内容,但我并不知道那是什么,或者其是怎么工作的。我想知道其是一个安全风险还是一个安全特性。如果是安全特性,我怎么使用它;如果是一个风险点,我想知道如何对其进行防御。所有权链是SQL Server内部的一个安全特性,而不是安全风险点。所有对象,如表和视图,都有所有者。在SQL Serv...翻译 2020-02-19 16:54:53 · 227 阅读 · 0 评论 -
理解SQL Server中的跨数据库所有权链
译自K. Brian Kelley的博文我已经掌握了所有权链,当我想知道跨数据库的所有权链是怎样的?其是如何工作的?如果拥有者是基于数据库的用户的,那么跨数据库的拥有者如何确定?跨数据库所有权链,是所有权链的一个扩展,除非其确实跨越了数据库的边界。如果你不熟悉所有权链,你应该从这篇《所有权链在SQL Server安全特性或安全风险》早期文章开始。跨数据库所有权链可能发生的一个实例是...翻译 2020-02-25 12:22:29 · 825 阅读 · 0 评论 -
SQL Server数据库级权限
前面博文《SQL Server服务器级权限》介绍了服务器级安全主题的权限,本文将继其之后,来介绍一下数据库级安全主题具有的权限,以及如何赋予、拒绝数据库用户、角色权限,并介绍查看用户、角色具有哪些权限的方法。本文同样使用sys.fn_builtin_permissions来查看安全主题数据库具有的权限SELECT * FROM sys.fn_builtin_permissions('...原创 2020-02-17 12:51:39 · 4495 阅读 · 0 评论 -
SQL Server服务器级权限
SQLServer 2008共有26个服务器级权限,分别为 ADMINISTER BULK OPERATIONS ALTER ANY CONNECTION ALTER ANY CREDENTIAL CREATE ANY DATABASE ALTER ANY DATABASE VIEW ANY DATABASE CREATE END...原创 2020-02-11 23:19:10 · 1984 阅读 · 0 评论 -
SQL Server 登陆账户/包含用户密码批量修改
SQL Server 数据库管理中,账户安全是数据库安全的一道重要屏障。除对密码复杂度有严格要求外,周期性修改账户密码,是保证数据库安全的一个重要举措。如下给出修改登陆账户/包含用户密码的脚本:--更换登陆帐户密码USE masterGOALTER LOGIN Jack WITH PASSWORD='I8@^mV7(Tyz0Jov',CHECK_POLICY=ON,CHECK_EXPI...原创 2020-01-16 15:37:00 · 1468 阅读 · 0 评论 -
克隆SQL Server 用户及权限
《克隆 SQL Server 登陆名及权限》、《SQL Server 登陆账户权限克隆——sp_DBA_LoginClone 升级版》两文介绍了如何生成一个账户的创建脚本及权限赋予脚本,《SQL Server 登录账户权限异步同步》给出了登陆账户及权限克隆的一个应用。通过自动化管理,极大的减轻了DBA的负担,同时也降低了管理时间成本。接下来的脚本给出了数据库用户(包括包含用户)、数据库角色、应用...原创 2020-01-06 11:25:55 · 1511 阅读 · 0 评论 -
SQL Server 部分包含数据库
包含是针对数据库独立性而来的,非包含数据库(SQL Server 2012以前版本的所有数据库,以及SQL Server 2012及以后的数据库属性CONTAINMENT 设置为NONE的数据库)是在实例master库下进行登陆账户密码验证的;而包含数据库可以通过本身带有密码的用户直接与应用进行交互。应用场景部分包含数据库和非包含数据库最大的差异在于排序规则,即如果数据库的排序规则和实例排...原创 2019-12-31 18:10:02 · 2468 阅读 · 2 评论 -
SQL Server 登录账户权限异步同步
在SQL Server 故障转移(高可用方案)中,除FCI(实例级故障转移)外,无论是Always On、Replication、Log Shipping 、Databaes Mirroring,还是异步备份还原,都容易忽略一个问题,那就是SQL Server 登陆账户的同步,因为数据库级别的高可用方案都没有同步登陆账户(除了SQL Server 2012 的Contained Database,...原创 2019-12-10 10:28:52 · 641 阅读 · 0 评论 -
克隆 SQL Server 登陆名及权限
在数据库的管理过程中,除了要创建SQL Server登陆账户,也会经常遇到需要克隆账户的情形,如服务器硬件老化,需要更新换代;或者需要SQL Server新版本的功能,将SQL Server更新到更高版本。这些都需要将一个服务器上的数据库转移到另外一个服务器上,像这样的数据库跨服务器的转移,不可避免的涉及到登陆账户的转移(数据库用户转移随着备份的还原直接转移了),转移不仅要保证账户相同,账户密码、...原创 2019-11-04 09:24:35 · 506 阅读 · 0 评论 -
SQL Server sp_helpdb 改写
在SQL Server 数据库管理中,我们常使用sp_helpdb 来查看数据库的基本信息,如我们要查看test数据库的信息,可以执行下面脚本:EXEC sp_helpdb test查询结果如下:但结果中无论是db_size 还是文件的size,都是分配的空间,我们不能看出数据库使用的空间有多少,未使用空间有多少。这个数据库的使用空间对前文中数据库收缩有很大的用处。在最开始我是通...原创 2019-10-24 12:32:54 · 1994 阅读 · 0 评论 -
SQL Server 大数据空间管理——数据库数据文件循环收缩
最近在进行数据归档整理,整理完后,需要对数据库进行收缩,释放未使用空间。为方便后期重复使用,将相关脚本进行整理。同时也将之分享给业界朋友,希望在您的管理中给予一些提示或者帮助。写到这里也让我回想起第一次收缩一个数据库时候的糗事,收缩两天没有完成,回滚一天还没有结束,最后直接用爆了所有存储^^。每天积累一点,每天进步一点。本文没有使用 DBCC SHRINKDATABASE进行数据库收缩,而D...原创 2019-10-22 09:41:10 · 800 阅读 · 0 评论 -
SQL Server 故障转移FCI 实例端口修改
本文所述端口修改,本质是一种替代方案,因为,我还无法找到一个直接修改默认端口1433的方案(在我所测试修改方案中,只要修改掉1433默认端口,FCI 数据库实例会挂机,无法启动)。所谓的替代方案是保留1433默认端口的侦听,新加入一个侦听端口。本文的测试环境是Windows 2012 standard系统,域环境,SQL Server 2016企业版。备份注册表为防止修改操作失误,导致...原创 2019-10-12 12:29:25 · 847 阅读 · 0 评论