- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SQL Server 2012 安全概述由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间.
从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用。这使数据对任何人,在任何地方都可访问。数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关键数据.
对于想要偷取数据或通过篡改数据来伤害数据的拥有者的人来说,这些功能使数据库成为有吸引力的目标。确保你的数据安全是SQL Server配置和使用它来保存数据的程序的重要部分。这个系列会探寻SQL Server 2012安全的基本,这样的话你可以保护你的数据和服务器资源,按你需要的安全等级来保护数据,免受这些威胁对你数据的影响。大部分信息对SQL Server的早期版本也适用,回到SQL Server 2005也可以,因为那是微软在产品里彻底检查安全的时候。但我也会谈论只在SQL Server 2012和后续版本里才有的功能.
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间.
威胁 。
在理解如何配置和使用SQL Server来保护你的数据,识别特定数据集和它的服务器的威胁是重要的第一步。你创建的用来管理你的小学足球队的设备清单很可能不需要严格的安全措施。很可能你会想提供最小的访问控制,这样的话,足球队成员不能随机修改他拥有哪个足球盒的记录。即使这些数据被盗或篡改也不会是世界末日.
另一方面,如果数据库有关于足球队孩子的个人信息,例如家庭地址和联系电话,很可能你想加强安全保护(或许法律上也要求你这么做)。可能你会通过隔离访问来保护数据的隐私,这样的话,几乎任何可以访问数据库来修改设备数据,但只有一些人可以访问个人数据。如果数据包括家长的信用卡号,你会需要极其小心的保护那个数据.
你的数据很容易受到很多威胁,下列清单是常见的几个。在网络上有很多资源可以针对你的特定情况帮你分析。这个清单只想帮助你开始考虑这些威胁,如何使用SQL Server的功能来应对它们,或者至少减少暴露数据给他们.
这个系列文章谈到的SQL Server 2012的功能可以帮你缓解这些各类威胁和其他方面。你必须理解对你数据的威胁,才可以知道如何保护它们。不要在不能防止你特定数据威胁的措施上浪费时间。你永远不能考虑到所有的假设情况,但最为最坏的情况你要保证你的数据库服务器对它的面向客户是完全不可用的。安全总是个妥协,对时间的风险和实现保障的必要金钱之间的平衡.
安全设计理念 。
早在2012年,比尔盖茨发布了他臭名昭著的计算机可信备忘录,即微软在产品里如何考虑和实现安全的,可以证明是个转折点。根据微软官方网站,可信计算机政策启动了。“基于良好的商业实践,专注创建和带来安全,隐私和可靠的计算体验。我们的目标是更安全、更可信的互联网”.
话句话说,微软在十多年前就变得非常关注安全。关于这个修改的第一个版本是SQL Server 2005,微软开始在产品考虑充分的安全。自那以后,SQL Server的每个版本都会保留新的安全架构,同时加强它,增加新的功能来同时提高安全来应对新出现的威胁.
如微软在SQL Server 2005时期里所描述的,通过定义产品安全的四大支柱来影响SQL Server可信计算发展.
“它是安全的”的理念已经影响了整个产品。尽管SQL Server一打开就是相当安全的,当你创建数据库和安装服务时,你必须做出明智的安全选择来保持SQL Server的安全。作出并保证生产数据库服务器的安全需要行动和警惕.
记住有时候保护数据的最佳方法是直接不把它不放到数据库里——例如,只保存你必须绝对坚持有效的信用卡信息(这样的人并不多)。如果你没有这样的需求,你应该处理信用卡事务,保存结果,而不是信用卡信息本身。你不会承受你没有数据上的安全风险.
安全的2个阶段 。
SQL Server的安全模型,像Windows一样,是个2个阶段的过程,允许用户和其它登录的访问服务器里受保护的资源.
用户可以登录到SQL Server,但除非它们有权限做什么,例如访问数据库,它就做不了什么。因此你不仅需要为你的用户提供授权凭证,你还要授权它们访问数据,在每个它们需要使用的数据库里为它们授权一次,定义账号.
当你考虑它的时候,在每个数据库里需要一个用户账号更有意义。不然的话,什么可以阻止用户登录到SQL Server并可以访问想访问任何数据库。这个概念有不同的含义来实现不同的场景,但这是安全的基本状态.
在这个系列的接下来文章会谈到验证和授权,你会学到在SQL Server里如何实现各种安全功能来应付你对数据已经识别的威胁.
SQL Server安全术语 。
当你与SQL Server和其它产品打交道时,你会碰到各种特定的专业术语。这里有一些最常见的术语,还有在数据库安全上下文里它们的含义.
在这个系列的文章里你会看到大部分这些术语的使用.
SQL Server安全管理和实现 。
正如SQL Server里大多数操纵和管理任务,通常安全功能几乎都有很多管理和实现方法,包括使用SSMS的图形界面,编写和执行T-SQL代码,使用在命令行编写PowerShell与SQL Server进行交互。使用PowerShell已经不是本系列文章的讨论范围,但在这个系列文章里,你会看到另外2个技术的很多例子.
使用SSMS的安全功能,通常你可以在对象浏览器里右击合适的对象,选择【属性】,然后在对话框里使用合适的页来做你想要的修改。例如,在AdventureWorksLT2012示例数据库上设置安全,在对象浏览器里右击数据库名,选择【属性】,然后选择【权限】页,如插图1.1所示.
插图1.2:用来修改AdventureWorksLT2012数据库安全的权限页 。
同时在数据库和服务器级别,对象浏览器包括了安全节点,让你管理和实现其他各种安全功能。插图1.2显示了对AdventureWorksLT2012数据库和服务器实例级别的这个节点。这2个高亮的节点包括各种子节点,给你在选择范围内访问合适的安全对象.
插图1.2:在对象浏览器里,在服务器和数据库级别的安全对象 。
你会在SSMS和它各个窗体里找到各种隐藏的安全功能,因此你可以好好点开这些安全性节点.
在SQL Server 2005彻底安检里另外一个改变是可以允许更颗粒度的方式分配安全。在接下来的文章里你就会学到,你会对各种主体分配各种许可来实现“最小特权”的重要安全原则——这个想法是每个主体只能有它们需要的许可:不多也不少。随着这个改变,微软增强了T-SQL,在语言上有强大的支持,可以直接操纵安全对象.
代码1.1展示了你可以使用T-SQL创建安全对象的简单例子。代码首先创建链接到现存系统登录的服务器级别的登录。然后在AdventureWorksLT2012数据库里,代码创建了个用户映射到登录,分配了默认架构给用户。最后的一点代码向你展示了你如何在数据库里删除用户和创建另一个用户映射到同样的登录。很作秀,当然,但是它展示了在代码里你能做什么。或者你也可以在SSMS的图形界面里实现,如果你喜欢的话.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-- Add a Windows login to SQL Server
CREATE
LOGIN [PC201602202041\woodytu]
FROM
WINDOWS;
GO
USE AdventureWorksLT2012;
GO
-- Name the user the same name as login
CREATE
USER
[PC201602202041\woodytu]
FOR
LOGIN [PC201602202041\woodytu]
WITH
DEFAULT_SCHEMA = Production;
GO
-- Or, rename the user in the database
DROP
USER
[PC201602202041\woodytu];
GO
CREATE
USER
woody
FOR
LOGIN [PC201602202041\woodytu];
GO
-- Query metadata to show that user was created
SELECT
*
FROM
sys.database_principals
WHERE
name
=
'PC201602202041\woodytu'
;
SELECT
*
FROM
sys.database_principals
WHERE
name
=
'woody'
;
|
代码1.1:创建服务器登录和数据库用户的示例代码 。
如果你想运行这个代码,首先你要做些改动。除非你的计算机名称和我的一样,且有一个woodytu的用户存在,你需要在代码里修改名称。这个代码在AdventureWorksLT2012数据库创建数据库用户,并使用它的Production架构,因此你要么需要安装这个数据库,要么修改代码使用另一个数据库和它里面存在的架构。但我还是建议你安装AdventureWorks数据库,因为接下来的文章会频繁用到它.
小结 。
这个系列的第一篇文章给你概括介绍了SQL Server 2012里的基本安全概念。你学到了一些常见的数据威胁,探寻了SQL Server背后的设计理念。你学到了安全的2个阶段——身份验证和授权,学习了在整个系列文章看到的一些安全术语,目睹了你可以使用SSMS图形界面和T-SQL代码来管理和实现安全.
在下一篇文章里,你会学到SQL Server里身份验证如何工作和身份验证可用选项的更多信息.
原文链接:
http://www.sqlservercentral.com/articles/Stairway+Series/109941/ 。
最后此篇关于SQL Server 2012 安全概述的文章就讲到这里了,如果你想了解更多关于SQL Server 2012 安全概述的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在学习 Spring 安全性,但我对它的灵活性感到困惑.. 我知道我可以通过在标签中定义规则来保护网址 然后我看到有一个@secure 注释可以保护方法。 然后还有其他注释来保护域(或 POJO)
假设有一个 key 加密 key 位于内存中并且未写入文件或数据库... byte[] kek = new byte[32]; secureRandom.nextBytes(kek); byte[]
我有 Spring Security 3.2.0 RC1 的问题 我正在使用标签来连接我 这表示“方法‘setF
我正在创建一个使用 Node Js 服务器 API 的 Flutter 应用程序。对于授权,我决定将 JWT 与私钥/公钥一起使用。服务器和移动客户端之间的通信使用 HTTPS。 Flutter 应用
在过去的几年里,我一直在使用范围从 Raphael.js 的 javascript 库。至 D3 ,我已经为自己的教育操纵了来自网络各地的动画。我已经从各种 git 存储库下载了 js 脚本,例如 s
在 python 中实现身份验证的好方法是什么?已经存在的东西也很好。我需要它通过不受信任的网络连接进行身份验证。它不需要太高级,只要足以安全地获取通用密码即可。我查看了 ssl 模块。但那个模块让我
我正在尝试学习“如何在 Hadoop 中实现 Kerberos?”我已经看过这个文档 https://issues.apache.org/jira/browse/HADOOP-4487我还了解了基本的
我有一个带有 apache2、php、mysql 的生产服务器。我现在只有一个站点 (mysite.com) 作为虚拟主机。我想把 phpmyadmin、webalizer 和 webmin 放在那里
前些天在网上看到防火墙软件OPNsense,对其有了兴趣,以前写过一个其前面的一个软件M0n0wall( 关于m0n0wa
我在 Spring Boot 和 oauth2(由 Google 提供)上编写了 rest 后端,在 "/login" 上自动重定向。除了 web 的 oauth 之外,我还想在移动后端进行 Fire
我想调用类 Foo,它的构造函数中有抽象类 Base。我希望能够从派生自 Base 的 Derived 调用 Foo 并使用 Derived覆盖方法而不是 Base 的方法。 我只能按照指示使用原始指
如何提高 session 的安全性? $this->session->userdata('userid') 我一直在为我的 ajax 调用扔掉这个小坏蛋。有些情况我没有。然后我想,使用 DOM 中的
我目前正在为某些人提供程序集编译服务。他们可以在在线编辑器中输入汇编代码并进行编译。然后编译它时,代码通过ajax请求发送到我的服务器,编译并返回程序的输出。 但是,我想知道我可以做些什么来防止对服务
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
目前,我通过将 session 中的 key 与 MySQl 数据库中的相同 key 相匹配来验证用户 session 。我使用随机数重新生成 session ,该随机数在每个页面加载时都受 MD5
Microsoft 模式与实践团队提供了一个很棒的 pdf,称为:“构建安全的 asp.net 应用程序”。 microsoft pdf 由于它是为 .Net 1.0 编写的,所以现在有点旧了。有谁知
在 Lua 中,通常会使用 math.random 生成随机值和/或字符串。 & math.randomseed , 其中 os.time用于 math.randomseed . 然而,这种方法有一个
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们有一个严重依赖 Ajax 的应用程序。确保对服务器端脚本的请求不是通过独立程序而是通过坐在浏览器上的实际用户的好方法是什么 最佳答案 真的没有。 通过浏览器发送的任何请求都可以由独立程序伪造。 归
我正在寻找使用 WebSockets 与我们的服务器通信来实现 web (angular) 和 iPhone 应用程序。在过去使用 HTTP 请求时,我们使用请求数据、url、时间戳等的哈希值来验证和
我是一名优秀的程序员,十分优秀!