我有一个写入单表 SQL Server 数据库 (2008) 的 Windows 服务。
我希望另一个应用程序以只读模式读取表。
我必须做什么才能通过应用程序适当地打开数据库,使其成为只读的?
服务打开数据库的方式有什么变化吗?
显然我不能将数据库更改为只读,因为服务必须写入它。
我有一个写入单表 SQL Server 数据库 (2008) 的 Windows 服务。
我希望另一个应用程序以只读模式读取表。
我必须做什么才能通过应用程序适当地打开数据库,使其成为只读的?
服务打开数据库的方式有什么变化吗?
显然我不能将数据库更改为只读,因为服务必须写入它。
无需更改服务。只需提供一个仅被授予 db_reader 角色的登录名。如果您有任何存储过程,则必须使用该GRANT EXEC ON <proc> TO <user>
命令授予对它们的访问权限。
让该应用程序与仅具有 db_datareader 角色的用户连接,发现@Server Fault:
在 Security > Logins 下,创建一个新登录名,然后在 User Mapping 部分中,勾选两个数据库,并为每个数据库选择 db_datareader 角色成员资格。
这将提供对每个 DB 中所有数据的读取访问权限。
...