设为首页 收藏本站
查看: 732|回复: 0

[经验分享] SQL Server 链接服务器的安全

[复制链接]
YunVN网友  发表于 2015-6-28 16:03:31 |阅读模式
一.本文所涉及的内容(Contents)

  • 本文所涉及的内容(Contents)
  • 背景(Contexts)
  • 安全设置(Security Settings)

    • 实现效果:用户A能看见能使用,B用户不能看见这个链接服务器;
    • 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用;
    • 总结

  • 参考文献(References)
二.背景(Contexts)
    当需要用远程服务器数据库和本地进行数据交互的时候(例如导数据等),我们通常会在本地创建一个远程服务器的数据库链接,关于创建创建链接服务器可以参考:SQL Server 创建链接服务器,但是我们很少去关注链接服务器的安全性问题。
    为了控制链接服务器的安全性,我们采取的方法是:控制只有某个用户能使用这个链接服务器,实现的效果就如Figure1和Figure2所示,TestLink用户能看到并使用链接服务器:[192.168.1.5],而sa用户却无法看到链接服务器。另外一种安全模式如Figure14和Figure15所示。
   DSC0000.jpg
  (Figure1:sa用户看到的链接服务器)
   DSC0001.jpg
  (Figure2:TestLink用户看到的链接服务器)
三.安全设置(Security Settings)
  对于链接服务器的安全,可以实现两种效果:
  1) 用户A能看见能使用,B用户不能看见这个链接服务器;
  2) 用户A能看见能使用,B用户能看见但是没有权限使用;
  (一) 实现效果:用户A能看见能使用,B用户不能看见这个链接服务器;
    1) 首先我们填写远程服务器的地址,如果有端口就加入端口,不填表示端口默认是1433
   DSC0002.jpg
  (Figure3:创建链接服务器)
    2) 在不考虑安全性的问题的情况下,我通常是使用Figure4的做法来设置帐号和密码的。
   DSC0003.jpg
  (Figure4:通常设置帐号密码的做法)
    3) 如果要实现链接服务器的安全,那就选择【不建立连接】,再点击【添加】按钮,这样就可以为“本地服务器登录到远程服务器登录的映射”添加本地A用户与服务器B用户的一个映射关系。
   DSC0004.jpg
  (Figure5:未定义的登录)
    4) 本地登录设置sa这个用户登录,与之对应的是远程服务器的用户sa和密码****进行远程服务器的登录验证,如下图所示:
   DSC0005.jpg
  (Figure6:登录映射)
    5) 通过上面几个步骤的设置,现在这个链接服务器就只有sa用户能够使用了,为了看到效果,我们创建一个TestLink的用户,创建界面操作如Figure7、Figure8,为了真实反应生产环境的帐号权限管理,我们另外为TestLink分配一个数据库权限,如Figure9图所示。
   DSC0006.jpg
  (Figure7:创建TestLink用户)
   DSC0007.jpg
  (Figure8:设置TestLink服务器角色)
   DSC0008.jpg
  (Figure9:设置TestLink用户身份)
    6) 分别使用sa和TestLink进行登录就能很直观的看出效果了:sa拥有[192.168.1.5]这个链接服务器的使用权限,而TestLink连看到的机会都没有。效果如Figure1和Figure2所示。
  (二) 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用;
    1) 假设我们需要在TestLink用户上创建一个链接服务器,但是想sa没有权限使用,如果直接在TestLink用户下创建链接服务器会出现下面Figure10的错误,因为没有权限,权限可以使用Figure11图进行修改。
   DSC0009.jpg
  (Figure10:TestLink用户创建链接服务器错误)
   DSC00010.jpg
  (Figure11:修改TestLink的角色)
    2) 现在我们创建一个[192.168.1.48]的链接服务器,设置如Figure12和Figure13所示。
   DSC00011.jpg
  (Figure12:创建新链接服务器)
   DSC00012.jpg
  (Figure13:设置TestLink登录映射)
    3) 我们使用sa和TestLink用户登录查看服务器链接,下图 Figure13和Figure14中看到的列表都是一样,那是否没有区别呢?
   DSC00013.jpg
  (Figure14:sa用户看到的链接服务器)
   DSC00014.jpg
  (Figure15:TestLink用户看到的链接服务器)
    4) 首先我们从使用上来看看是否有区别,在sa和TestLink用户下使用链接服务器[192.168.1.48]的情况:
   DSC00015.jpg
  (Figure16:sa用户使用链接服务器)
   DSC00016.jpg
  (Figure17:TestLink用户使用链接服务器)
  (三) 总结:
    1) 用户能不能看到链接服务器是由sysadmin角色来决定的,在为一个用户分配角色的时候就应该注意这点;
    2) 如果两个用户都在sysadmin角色下,即使他们看到的链接服务器列表是一样的,但是也是可以控制链接服务器的权限的,如Figure16和Figure17所示;
    3) 如果sa用户知道192.168.1.48的帐号和密码,他也可以自己在[192.168.1.48]链接服务器添加自己的用户登录映射,一样可以使用这个远程链接服务器,前提是sa用户知道帐号和密码;这样只要控制192.168.1.48帐号的安全就可以了;
    4) 如果想在用户登录映射的时候使用模拟,那么你设置的这个用户必须与远程链接服务器的用户名和密码要相同才可以使用;
    5) 如果链接服务器是 SQL Server 的实例,若要获取所有可用的统计,用户必须拥有该表或者是链接服务器上 sysadmin 固定服务器角色、db_owner 固定数据库角色或者 db_ddladmin 固定数据库角色的成员。
四.参考文献(References)
  链接服务器的安全性
  sp_addlinkedserver (Transact-SQL)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-81247-1-1.html 上篇帖子: SQL Server 2005 BI天津培训专场的PPT 下篇帖子: SQL Server 2008中的代码安全(八):透明加密(TDE)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表