sql server中guest用戶

在清理数据库服务器登录用户时,误删了薪资数据库的guest用户,导致多个系统无法正常运行。经排查,发现这些系统依赖薪资数据库的员工表。为解决此问题,重新添加了guest用户并设置其public角色,确保所有登录用户可查询employee表。SQL Server的guest用户允许无特定数据库用户权限的登录访问,但可能带来安全隐患。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天上午对公司数据库服务器上的登录用户进行了清理,意外地发现在所有的数据库中,有三个数据库添加了guest用戶,三个数据库中有两个系统数据库,还有一个是公司的薪资数据库,我当时觉得在薪资数据库中存在guest用戶是很不安全的,因為只要能登錄到數據庫服務器上的任一登錄用戶,它們都是可以訪問擁有guest用戶的數據庫的,所以我就把guest用戶從薪資數據庫里刪除掉了。

結果下午剛一上班,工廠那邊就打電話講好多系統都不能使用了(比如訂單系統,樣品系統等等),看了一下程序的錯誤提示,"訪問薪資數據庫被拒絕"。我當時很疑惑,難道說我們的訂單,樣品這些系統會使用到薪資數據庫中的數據。調試了一下程序,發現這些系統確實調用到了薪資數據庫中的員工表,再聯想到薪資數據庫中被我刪除的guest用戶,問題其實就出在了這個guest用戶的身上了。

問題找到了,那就去解決它,在薪資數據庫中添加guest用戶,并授予它public的用戶角色,指定public角色能夠訪問employee表,這樣子的話,對於任一登錄用戶,只要他可以訪問服務器中的任一數據庫,即使這個登錄用戶沒有被添加到薪資數據庫中,他一樣也是可以訪問薪資數據庫的,只不過,它訪問的權限僅僅是查詢employee表。

對於某個數據庫中的某張表,如果這張表是需要公共訪問的,那就可以在這個數據庫中添加guest用戶,然後給guest用戶分配public的用戶角色,并指定public角色可以訪問的那些表。

 

 

对于sqlserver中的 guest用戶,联机帮助的解释如下:

guest 用户帐户允许没有用户帐户的登录访问数据库。当满足下列所有条件时,登录采用 guest 用户的标识:

  • 登录有访问 Microsoft® SQL Server™ 实例的权限,但没有通过自己的用户帐户访问数据库的权限。
  • 数据库中含有 guest 用户帐户。

可以将权限应用到 guest<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值