来宾帐户和数据库链接在 sql server 上的安全隐患?

Pet*_*ith 5 sql-server-2008 security

我有另一个数据库 Ydb 访问数据库 Kdb 中的数据。他们都有相同的所有者。
为了允许跨数据库链接,我似乎需要在 Kdb 中启用来宾用户。

我是这样做的:

USE [master];
GO
ALTER DATABASE Ydb SET DB_CHAINING ON;
ALTER DATABASE Kdb SET DB_CHAINING ON;
GO
USE [Kdb]
GO
GRANT CONNECT TO guest;
Run Code Online (Sandbox Code Playgroud)

我意识到这意味着由 Ydb 的所有者创建的 Ydb 中的存储过程可以在由同一登录名创建时自由访问 Kdb 中的对象。这会开启什么样的攻击?

And*_*ter 3

它不会直接遭受“攻击”。这仅意味着数据库 1 (Kdb) 中的任何用户也可以访问数据库 2 (Ydb)。通常更关键的是,当您拥有具有 DDL 权限(创建视图、过程)的用户时,他们还能够访问数据库2 中的对象。也许比普通客人能做的还要多。这取决于您计划授予来宾的对象所有者和权限。

2012 年之前的 SQL Server 存在一个小安全漏洞,如下所述: Security-issue: guest-guest impersonation,但这是一个非常有限的场景