1

在 SQL Server 2005 中,可以创建允许对数据库进行只读访问的数据库快照,即使数据库处于“恢复挂起”模式也是如此。此功能的一个用例是创建引用生产数据库副本的报告数据库,该副本通过日志传送保持最新。

在这种情况下,如何在不同于“生产”源数据库的“快照”数据库上实现安全性?

例如,在生产数据库中,所有对数据的访问都是通过存储过程进行的,而在快照数据库中,用户可以从数据库中的表中进行选择以进行报告。我看到的问题是快照数据库的安全性是从源数据库继承的,并且不能更改,因为快照是严格只读的。

4

2 回答 2

1

你能管理这个数据库的权限吗?对于这种情况,添加一个仅对数据库具有读取权限的单独用户是否足够?这可能是主数据库上的只读用户,但仅在快照数据库上有效使用。

即添加一个新用户,readerMan5000,他只被授予选择访问权限,到有问题的数据库。然后要求用户通过该新凭据进行身份验证。

请注意未来的评论者,您可能需要阅读: http ://www.simple-talk.com/sql/database-administration/sql-server-2005-snapshots/ 或 http://msdn.microsoft.com/en- us/library/ms187054(SQL.90).aspx 在你像我一样张开大嘴之前。:)

于 2008-09-17T03:51:53.420 回答
0

拍摄快照后您无法更改权限,但这里有一种解决方法:与其让他们直接访问表,不如要求他们使用视图。如果视图仅用于报告,那么您可以在原始数据库中对它们设置严格的安全性,然后让用户在快照中点击这些视图。如果您希望它有效,您将需要限制对基础表的访问。

于 2008-10-19T00:39:53.670 回答