对 SQL Server 的只读访问权限

本文关键字:读访问 权限 SQL Server | 更新日期: 2023-09-27 18:35:48

>我正在创建工具,以计划的方式对数据库运行SQL查询,以进行某些监视。如何限制用户使用此工具更新数据库?

目前,我通过在仅具有只读访问权限的服务用户下运行服务来阻止更新数据。还有其他方法可以做到这一点吗?(我想要其他选项,因为此服务用户是共享用户。将来,其他开发人员可能希望授予此用户更新权限以满足其他要求)。

看到应用程序意图只读选项,但这不会限制用户更新数据库,并且我不确定复制是否在生产 SQL Server 中打开。

我正在使用SQL Server 2012(要监视的工具后端和数据库)和Windows服务来运行针对数据库的查询。

提前感谢您的建议。

对 SQL Server 的只读访问权限

我通常为每个工具/应用程序创建一个单独的数据库用户。 这允许您准确指定每个工具所需的权限,而不会影响其他应用程序。

可以在事务开始时使用 EXECUTE AS 语句来使用受限权限集,同时仍使用 Windows 服务帐户进行连接。

查看

db_datareader的用户映射

https://msdn.microsoft.com/en-us/library/ms189121.aspx

您可以为该工具连接到数据库的用户授予该用户映射角色。 使其只能执行 SELECT 查询