1

我有一个仅使用 SQL 身份验证的 SQL Server 实例。在这个实例上我将只有两个用户和一个数据库。SA 的用户名为 XX。我有另一个用户,假设该用户是 X。并且,在我的创建脚本中,我将 X 添加为服务器上的用户,然后添加到那里的一个数据库中。

如果 XX 是 SA(在安装 SQL Server 时创建),我不需要将 XX 显式映射到任何数据库,对吗?

我对没有登录的创建用户有点困惑。如果上述情况属实,我是否需要编写脚本将 X 添加到一个没有登录的数据库?WITHOUT LOGIN有什么意义?在什么条件下有人会做什么?

谢谢你。

4

1 回答 1

4

添加了未登录的用户以替换应用程序角色。
无登录用户可用于模拟,以获得必要的权限。它们允许用户使用自己的凭据对实例进行身份验证,从而使 SQL Server 能够审核其登录活动,同时在数据库上下文中模拟未登录用户。

简单的模拟示例:

SELECT SUSER_NAME(), USER_NAME();
GO
CREATE USER loginless_user_4test
    WITHOUT LOGIN
GO
EXECUTE AS USER = 'loginless_user_4test'
GO
SELECT SUSER_NAME(), USER_NAME();
GO
REVERT  --as long as you haven't issued "EXECUTE AS ... WITH NO REVERT", you can go back to previous context
GO
于 2013-06-14T17:14:57.270 回答