如何使用T-SQL管理用户访问权限以查看数据库视图而不查看源表

问题:

有一组用户不希望直接访问数据库表。有一些预定义的数据库视图,用户应该能够通过这些视图查看数据。在我们的情况下,用户甚至无法通过SSMS或任何可以连接到数据库的应用程序查看表格。此外,应尽可能限制用户。例如,他们甚至都不知道源表名称是什么。因此,SYS或INFORMATION_SCHEMA不应显示任何其他信息。

解:

实现目标的最佳方法是创建一个新的数据库角色,并将用户定义为新数据库角色的成员。通过SSMS,我们可以非常轻松地创建数据库角色,但是,如果我们有很多视图并且想要通过UI定义访问,那将是一个耗时的过程。另外,它增加了在配置过程中人为错误的风险。

一种非常简单的方法是使用下面的T-SQL脚本创建数据库角色,还将视图添加为角色的安全对象,并将授予足够的访问权限,以便该角色成员中的所有用户都可以看风景。他们还可以执行视图并查看结果。您只需要确保用户不是与新角色的权限重叠的其他某些角色的成员即可。

继续阅读 “如何使用T-SQL管理用户访问权限以查看数据库视图而不查看源表”

将SSIS项目部署到不同的环境

在本文中,我将解释如何将已开发的SSIS项目部署到几个不同的环境。您可能已经发生了将SSIS项目部署到多个环境的情况。假设您具有DEV,QA,UAT和PROD环境。一些组织可能拥有更多的环境。另外,在很多情况下,您可能有几个PROD,应该将SSIS包部署到所有PROD。因此,方案是,无论何时在DEV区域中创建新的SSIS项目或修改现有项目,都需要将每个SSIS项目部署到QA以进行测试。因此,如果您有3个新的SSIS项目或刚修改了3个现有项目,则需要分别部署每个项目。对于质量检查人员来说,在完成测试用例之后以及SSIS项目通过所有测试用例之后,情况都是一样的。他们需要将所有项目部署到UAT。同样,使用UAT和PROD也是一样。当您需要在几个不同的PROD环境中部署所有项目时,这将变得越来越困难。

使用下面的解决方案,您可以轻松地将所有SSIS项目从一个环境部署到另一个环境甚至几个不同的环境。

继续阅读 “将SSIS项目部署到不同的环境”