ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server 2005 的Guest用户

SQL Server 2005 的Guest用户

原创 Linux操作系统 作者:Learnsql 时间:2009-10-15 16:57:39 0 删除 编辑


---------------------------------------
-- SQL Server 2005 Guest 用户
---------------------------------------

在SQL Server 2005 中的每个数据库安全性的
用户下面均有一个 guest 用户,默认该用户只在
master 和 tempdb 数据库下是开启的,其他数据
库均为禁用的。该用户在SQL Server 2005中是不
允许删除的。

一个登录者若在该数据库中没有对应的用户,则
启用guest则可以进行对该数据库的访问,否则访
问被拒,开启和禁用Guest用户只能用语句来实现,
SSMS暂没发现怎么实现。

启用Guest:
GRANT Connect TO Guest;

禁用Guest
REVOKE Connect FROM Guest;

例:
--在SQL Server 2005中新增一个登录名 Mary
SELECT SUSER_SNAME(),USER_NAME();--SYSTEM9\Administrator   dbo

--CREATE LOGIN [Mary] WITH PASSWORD=N'Û!¿2ÕoT22y_þ§cr’iÊêmœW£ÍŽ/ÏÍ@q', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
CREATE LOGIN [Mary] WITH PASSWORD=N'P@ssw0rd',DEFAULT_DATABASE=[master]

--模拟Mary登录
EXECUTE AS Login='Mary'
SELECT SUSER_SNAME(),USER_NAME(); --Mary    guest]

--模拟登录Adventureworks数据库,Adventureworks的guest未开启
USE ADventureworks
GO

--消息 916,级别 14,状态 1,第 1 行
--服务器主体 "Mary" 无法在当前安全上下文下访问数据库 "AdventureWorks"。


--退出Mary模拟,开启Guest用户
REVERT;
SELECT SUSER_SNAME(),USER_NAME();--SYSTEM9\Administrator   dbo

--转向 Adventureworks 开启Guest
USE Adventureworks
GO

GRANT CONNECT TO Guest; --开启Guest

--在模拟Mary
EXECUTE AS LOGIN='Mary'
USE Adventureworks

GO
SELECT SUSER_SNAME(),USER_NAME();--Mary   guest

--退出模拟,禁用Guest
REVERT
REVOKE CONNECT FROM Guest;

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15042150/viewspace-616671/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 外键引用函数
请登录后发表评论 登录
全部评论

注册时间:2008-08-01

  • 博文量
    20
  • 访问量
    46456