安全性在当今世界中是非常重要的,但是如果不了解现有的控制选项,我们是很难保证SQL数据安全的。在本文中,我将阐述如何设置数据库角色并解释它们是如何帮助我们巩固企业安全性的。 数据库角色 数据库角色允许我们定义一个特定的权限集。然后,服务器登录(不管是在AD组、AD用户或者SQL Server登录)都将添加到服务器上和数据库角色中。
第一步:右键点击“Database Roles”,选择“New Database Role”。 第二步:点击“Securables”,选择指派到该角色的其它数据库角色、对象等。然后点击“OK”。现在数据库角色就出现在“Database R……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
安全性在当今世界中是非常重要的,但是如果不了解现有的控制选项,我们是很难保证SQL数据安全的。在本文中,我将阐述如何设置数据库角色并解释它们是如何帮助我们巩固企业安全性的。
数据库角色
数据库角色允许我们定义一个特定的权限集。然后,服务器登录(不管是在AD组、AD用户或者SQL Server登录)都将添加到服务器上和数据库角色中。
第一步:右键点击“Database Roles”,选择“New Database Role”。
第二步:点击“Securables”,选择指派到该角色的其它数据库角色、对象等。然后点击“OK”。现在数据库角色就出现在“Database Roles”下的数据库/安全/角色清单中。
第三步:指派权限到数据库角色上。只指派确定需要的权限到数据库角色上。我强烈提倡所有数据库访问都通过存储过程,因为这样能让公司获得如下的好处:
1、编译存储过程可以减少破坏操作的SQL Server入侵攻击。
2、编译存储过程允许缓存和重用执行计划,从而减少IO/CPU/RAM使用率,因为一次执行计划将以参数化语句存储而不是分别为每次执行存储一个计划。
3、更简单的访问控制。不要对某一个进程可能被访问的表(很可能是10+表格)授予select/delete/insert/update访问权限,我们只需要对合适的存储过程授予执行权限,然后存储过程会给需要的对象授予正确的权限。
下面是这个例子的一些权限授予示例:
•grant execute on [dbo].[Proc_test1] to [TestdbRole]
•grant view definition on [dbo].[Proc_test1] to [TestdbRole]
第一个语句授予"TestdbRole"数据库角色成员执行Proc_test1存储过程的权限。第二个语句授予TestdbRole对存储过程的查看定义权利。基本上,这就意味着该角色成员现在可以执行程序Proc同时查看它的内容。然而,它们没有其它的权利,因为Proc_test1查询表Table_1时就已经隐含地授予表查询访问权限了。但是,TestdbRole成员则不能在Table_1进行查询、查看定义或者执行任何活动。
如果选择授予直接对象访问权限,那么只需简单地执行“grant select on [object] to [TestdbRole]”。然而,正如前面所声明的,我并不推荐这样的方法。
作者
Matt在SQL Server和Oracle这两个领域具有12年的经验。他获得微软MCITP认证、是一名数据库开发人员,他还获得了计算机科学专业硕士学位是SQL Server数据库系统高级软件工程师,范围从2 GB到3+ TB、2k和40+ktrans/sec之间。目前他任职于IGT公司,同样是一名独立的咨询师、专攻覆盖自动化、电子商务、娱乐和银行业的SQL Server、Oracle以及.NET方面。Matt擅长OLTP/OLAP数据库管理系统以及用.NET语言写可升级的处理系统。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。