我怎样才能创build一个只读的Sql Server 2008帐户?

我希望能够只读访问我的SQL Server 2008数据库服务器。 特别是两个数据库,一个叫做“live”,一个叫“stage”。

本质上,接收这个用户名和密码的人应该能够从任何表中进行select,但是不能执行任何更新,删除或插入操作。 当然,他们不应该能够执行DDL操作。 如果必须的话,我可能会逃避禁止他们运行存储过程。

有什么build议?

在“ 安全” >“ login”下 ,创build一个新login名,然后在“ 用户映射”部分中,勾选两个数据库,并为每个selectdb_datareaderangular色成员身份。

这将提供对每个数据库中所有数据的读访问权限。

如果你想用脚本来完成,那么GRANT命令就是你需要启动的地方。

另一种方法是通过存储过程提供对数据的访问权限,而不是授予他们对原始数据的读取权限,授予他们对所选SProcs的执行权限。

最终点缀:如果设置这些权限很麻烦,您可能需要创build自己的数据库angular色,并且可以按照上面所述分配这些权限。 对于每个用户(现在和未来),您可以简单地将它们分配给该angular色。

理想情况下,您将创build一个Windows组login对这些数据库进行读取访问 – 将DATABASEangular色db_datareader分配给该组。