guest 用户帐户允许没有用户帐户的登录访问数据库。
当满足下列所有条件时,
登录采用 guest 用户的标识:
1.登录有访问 Microsoft® SQL Server™ 实例的权限,但没有通过自己的用户帐户访问数据库的权限。(是不能用guest直接登录sqlserver)
2.数据库中含有 guest 用户帐户。
可以将权限应用到 guest 用户,就如同它是任何其它用户帐户一样。可以在除 master 和 tempdb 外(在这两个数据库中它必须始终存在)的所有数据库中添加或删除 guest 用户。默认情况下,新建的数据库中没有 guest 用户帐户。
例如,若要将 guest 用户帐户添加到名为 Accounts 的数据库中,请在 SQL 查询分析器中运行下列代码:USE AccountsGOEXECUTE sp_grantdbaccess guest
以上为联机帮助说明,我这里补充一下这个例子为Accounts数据库添加了guest用户。guest用户的存在意味着所有登陆到sqlserver服务器的用户都可以访问这个数据库,即使他还没有成为本数据库的用户。
例如pubs数据库里存在test这个用户,因为Accounts数据库里添加了guest这个用户,所以test用户登陆到sqlserver服务器上,除了可以操作pubs数据库,还可以操作Accounts数据库。这就是安全所在。