禁用跨数据库访问

时间:2014-04-23 15:12:08

标签: sql-server

假设User1可以访问Db1和Db2。

DB1和Db2位于同一SQL Server框中。

现在使用以下语法,此用户可以访问其他数据库中的表:

SELECT * 
FROM [database].[schema].[table]

我有一个安全要求,我正在努力限制跨数据库查询。

用户可以访问这两个dbs,只是我需要一种方法来限制在不同服务器上执行查询。

2 个答案:

答案 0 :(得分:1)

您不能为在所有相关数据库中具有适当权限的用户限制跨数据库查询。

答案 1 :(得分:0)

你要求的是不可能的。

但是,最好的办法是拒绝从表中选择作为一般规则,并且只允许从视图中选择并执行存储过程。通过这种方式,您可以控制谁可以在哪个上下文中执行操作,并且优先尝试不这样做。