SQL Server 链接服务器的安全

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文:SQL Server 链接服务器的安全一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 安全设置(Security Settings)实现效果:用户A能看见能使用,B用户不能看见这个链接服务器; 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用; 总结 参考文献(References) 二.
原文: SQL Server 链接服务器的安全

一.本文所涉及的内容(Contents)

  1. 本文所涉及的内容(Contents)
  2. 背景(Contexts)
  3. 安全设置(Security Settings)
    1. 实现效果:用户A能看见能使用,B用户不能看见这个链接服务器;
    2. 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用;
    3. 总结
  4. 参考文献(References)

二.背景(Contexts)

  当需要用远程服务器数据库和本地进行数据交互的时候(例如导数据等),我们通常会在本地创建一个远程服务器的数据库链接,关于创建创建链接服务器可以参考:SQL Server 创建链接服务器,但是我们很少去关注链接服务器的安全性问题。

  为了控制链接服务器的安全性,我们采取的方法是:控制只有某个用户能使用这个链接服务器,实现的效果就如Figure1和Figure2所示,TestLink用户能看到并使用链接服务器:[192.168.1.5],而sa用户却无法看到链接服务器。另外一种安全模式如Figure14和Figure15所示。

clip_image001_thumb

(Figure1:sa用户看到的链接服务器)

clip_image002_thumb

(Figure2:TestLink用户看到的链接服务器)

三.安全设置(Security Settings)

对于链接服务器的安全,可以实现两种效果:

1) 用户A能看见能使用,B用户不能看见这个链接服务器;

2) 用户A能看见能使用,B用户能看见但是没有权限使用;

(一) 实现效果:用户A能看见能使用,B用户不能看见这个链接服务器;

  1) 首先我们填写远程服务器的地址,如果有端口就加入端口,不填表示端口默认是1433

clip_image003_thumb

(Figure3:创建链接服务器)

  2) 在不考虑安全性的问题的情况下,我通常是使用Figure4的做法来设置帐号和密码的。

clip_image004_thumb

(Figure4:通常设置帐号密码的做法)

  3) 如果要实现链接服务器的安全,那就选择【不建立连接】,再点击【添加】按钮,这样就可以为“本地服务器登录到远程服务器登录的映射”添加本地A用户与服务器B用户的一个映射关系。

clip_image005_thumb

(Figure5:未定义的登录)

  4) 本地登录设置sa这个用户登录,与之对应的是远程服务器的用户sa和密码****进行远程服务器的登录验证,如下图所示:

clip_image006_thumb

(Figure6:登录映射)

  5) 通过上面几个步骤的设置,现在这个链接服务器就只有sa用户能够使用了,为了看到效果,我们创建一个TestLink的用户,创建界面操作如Figure7、Figure8,为了真实反应生产环境的帐号权限管理,我们另外为TestLink分配一个数据库权限,如Figure9图所示。

clip_image007_thumb

(Figure7:创建TestLink用户)

clip_image008_thumb

(Figure8:设置TestLink服务器角色)

clip_image009_thumb

(Figure9:设置TestLink用户身份)

  6) 分别使用sa和TestLink进行登录就能很直观的看出效果了:sa拥有[192.168.1.5]这个链接服务器的使用权限,而TestLink连看到的机会都没有。效果如Figure1和Figure2所示。

(二) 实现效果:用户A能看见能使用,B用户能看见但是没有权限使用;

  1) 假设我们需要在TestLink用户上创建一个链接服务器,但是想sa没有权限使用,如果直接在TestLink用户下创建链接服务器会出现下面Figure10的错误,因为没有权限,权限可以使用Figure11图进行修改。

clip_image011_thumb

(Figure10:TestLink用户创建链接服务器错误)

clip_image012_thumb

(Figure11:修改TestLink的角色)

  2) 现在我们创建一个[192.168.1.48]的链接服务器,设置如Figure12和Figure13所示。

clip_image013_thumb

(Figure12:创建新链接服务器)

clip_image014_thumb

(Figure13:设置TestLink登录映射)

  3) 我们使用sa和TestLink用户登录查看服务器链接,下图 Figure13和Figure14中看到的列表都是一样,那是否没有区别呢?

clip_image015_thumb

(Figure14:sa用户看到的链接服务器)

clip_image016_thumb

(Figure15:TestLink用户看到的链接服务器)

  4) 首先我们从使用上来看看是否有区别,在sa和TestLink用户下使用链接服务器[192.168.1.48]的情况:

clip_image017_thumb

(Figure16:sa用户使用链接服务器)

clip_image018_thumb

(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)

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
云安全 弹性计算 安全
电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
阿里云推出第八代企业级ECS实例,强化云安全,搭载英特尔TDX技术,结合CIPU与飞天系统,提供高效且安全的云服务解决方案。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.5c0b7e5aZhSJ9V)
16 2
|
2月前
|
SQL
sql server链接查询
sql server链接查询
18 1
|
2月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
|
2月前
|
SQL 存储 BI
sql server 2012远程链接的方法及步骤
sql server 2012远程链接的方法及步骤
20 1
|
13天前
|
前端开发 安全 搜索推荐
【专栏】ngrok` 是一款让本地服务器暴露到公网的工具,提供外网访问、临时公网地址、安全隧道及实时更新功能
`【4月更文挑战第29天】ngrok` 是一款让本地服务器暴露到公网的工具,提供外网访问、临时公网地址、安全隧道及实时更新功能。使用简单,包括下载客户端、注册认证、启动本地服务和执行命令。在前端开发中,ngrok 用于本地开发调试、跨设备测试、前后端联调、演示分享和应急处理。它提高了开发效率,简化网络环境和部署问题。无论是移动应用测试还是团队协作,ngrok 都能发挥关键作用,是前端开发者必备神器。尝试使用 ngrok,提升你的开发体验。
|
14天前
|
监控 安全 Linux
【专栏】拿到一台新的物理服务器,有几项关键的准备工作和安全措施是必须要做的
【4月更文挑战第28天】新服务器部署前,需进行系统初始化(安装OS、网络配置、用户管理)、安全加固(更新补丁、关闭不必要的服务、防火墙设置)和性能优化(调整内核参数、文件系统优化)。同时,设置监控系统(如Nagios)以检查硬件和软件资源,制定备份策略确保数据安全。这些步骤确保服务器稳定、安全、高效运行。
|
23天前
|
缓存 安全 调度
代理服务器如何保护用户隐私和安全?
Python搭建代理IP池实现接口设置与整体调度
34 10
|
26天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
62 0
|
1月前
|
弹性计算 安全
电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
阿里云第八代ECS实例,搭载第五代英特尔至强处理器与飞天+CIPU架构,提升企业云服务安全与算力。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.76bf7e5al1Zn4U) ![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_f422f7cb775444bbbfc3e61ad86800c2.png)
37 14
|
1月前
|
SQL 安全
CTF--Web安全--SQL注入之‘绕过方法’
CTF--Web安全--SQL注入之‘绕过方法’