如果我有一组SQL(即包含任意SQL语句的脚本),是否有办法找出执行SQL所需的最低权限?
(当查看WinForms应用程序的项目属性页上的安全选项卡时,“应用程序所需的权限”区域类似于Visual Studio中的内容。)
背景:
作为应用程序的一部分,我有一组升级脚本(这些脚本会更改表中的数据以及更改架构),将在客户端对其数据库运行。在部署它们之前,我想分析这些升级脚本是否存在潜在的权限问题,因为运行它们的客户可能具有受限制的SQL Server登录。这些脚本中发生的事情通常是添加/删除/更改表/列/索引,但我也从信息模式视图和系统表中选择。
编辑:
我已经设置了错误处理来处理用户没有正确权限执行升级的情况。我还当前检查运行升级的用户是否为db_owner,但我更关心升级之外的事情。例如,脚本经常使用系统表来获取有关数据库架构的信息,以决定是否执行特定操作-我想知道访问这些表所需的权限。另一个例子是打开页面压缩-用户需要特定的权限才能执行此操作吗?
我希望在部署升级脚本之前对其进行检查,因为提前知道需要某些权限比升级失败并出现错误要好得多。
(当查看WinForms应用程序的项目属性页上的安全选项卡时,“应用程序所需的权限”区域类似于Visual Studio中的内容。)
背景:
作为应用程序的一部分,我有一组升级脚本(这些脚本会更改表中的数据以及更改架构),将在客户端对其数据库运行。在部署它们之前,我想分析这些升级脚本是否存在潜在的权限问题,因为运行它们的客户可能具有受限制的SQL Server登录。这些脚本中发生的事情通常是添加/删除/更改表/列/索引,但我也从信息模式视图和系统表中选择。
编辑:
我已经设置了错误处理来处理用户没有正确权限执行升级的情况。我还当前检查运行升级的用户是否为db_owner,但我更关心升级之外的事情。例如,脚本经常使用系统表来获取有关数据库架构的信息,以决定是否执行特定操作-我想知道访问这些表所需的权限。另一个例子是打开页面压缩-用户需要特定的权限才能执行此操作吗?
我希望在部署升级脚本之前对其进行检查,因为提前知道需要某些权限比升级失败并出现错误要好得多。