喜欢Sqlsever的数据分析师们,没有理由不喜欢上Azure SQL数据库,因其使用同一套的T-SQL,在提供相同功能基础上,额外增加了可以轻松外网访问,专业的AAD帐号体系支持,无需苦苦地在企业内部被IT部门多方拦阻,即可开展起自己的数据分析及数据分享工作。
部门级需求之困
在一般的中小企业中,如果有IT人员,估计大家都有同样的无奈,向IT部提一些数据需求,反馈总是那么地缓慢。IT的响应永远是一些企业级的大型需求或紧急需求。部门级的需求常常非常尴尬,需要自力更生来解决。
数据分析师在这样的环境下开展工作,浑身的劲使不出来,想要一台服务器、一个数据库,可以做一些数据整合和数据共享分发,如果没有IT部的支持,在过去真的很难有什么出路。
现在云时代,很多IT的基础设施得以用云服务的方式提供,对我们部门级的需求应用,也是一种极大的福利(当然还是需要说服部门或IT的支持,让数据上云不用那么地紧张和恐惧,特别是有微软这样的重量级的合规国际型企业做担保,过不多久,人人上云和现在人人网购一样普遍)。
在Azure上开通数据库服务,对小型应用来说,费用低,但提供的服务却已经足够满足小需求使用,是一项很划算的投资。
今天就给大家介绍Azure SQL服务,手把手带领大家快速上手这一非常好用、易用的服务。
开通Azure SQL服务
登录Azure.cn中国后,通过【创建资源】的菜单,定位到【数据库】选项,即可找到【SQL Server (仅逻辑服务器)】,以下都统一简称其为Azure SQL。
![1e8828acea136bf25e16ffb44437f26c.png](https://i-blog.csdnimg.cn/blog_migrate/139dc6fc9b5ad7d02107b4b8aa7d7abd.jpeg)
image.png
按要求填写下必填项,其中用户名、密码是sqlserver认证的用户密码体系。资源组如果没有就新建一个。
![11377300026e4f3cff3495f3514100e5.png](https://i-blog.csdnimg.cn/blog_migrate/d90976068be79e2da49136e1404f5f63.jpeg)
image.png
等待一阵子,跳转到【所有资源】后,刷新一下,就可以看到已经新建了一项【sqlserver】服务,这个相当于我们的Sqlserver服务器,一台服务器上可以创建多个数据库。
![c1d5f535dcaa47adba8f688df73ff342.png](https://i-blog.csdnimg.cn/blog_migrate/c3fa3611a8bf1599447f480d933f73a6.jpeg)
所有资源下找到创建的sqlserver服务器
当前创建好的服务器,没有数据库,先新建一个数据库。
![e006c17d518745bf3d044b457df10538.png](https://i-blog.csdnimg.cn/blog_migrate/d9104148e510e65b7f0af83827ac9f51.jpeg)
点击新建数据库
在新建数据库选项中,可以建一个示例数据库【AdventureWorksLT】,也可以创建空白的数据库,自行测试下,示例数据库马上有个有数据的数据库可以供测试。
新建空白数据库时,记得要修改一下排序规则,我们中文数据库,一般用【Chinese_PRC_CI_AS】,这一项在创建完数据库后不能修改的。
![8c6c1dc4a899a2d868e282dd115b9843.png](https://i-blog.csdnimg.cn/blog_migrate/52c14527f27d0902e6514d3906438359.jpeg)
新建数据库选项
![ddc84dfb351a1790ca8cb0712819a150.png](https://i-blog.csdnimg.cn/blog_migrate/e1713eeef67ed1ea678d848d057a4a4a.jpeg)
设置定价层,回到标准版中
![ba53420cd6aee92ce8d758454d25a842.png](https://i-blog.csdnimg.cn/blog_migrate/2ba65ef737794765b6ecde5002f952a0.jpeg)
标准版已经很够普通数据分析需求用途,费用感人
回到sqlsever服务器上,可以看到服务器的登录地址。
![9bb50fa2caaf3679a3d8410c22409b06.png](https://i-blog.csdnimg.cn/blog_migrate/54b36cab081ce4be5b826d5656603d82.jpeg)
红框部分下文会详细提到
使用SSMS输入服务器名称、用户、密码后,发现登录失败,提示防火墙拦截。
在云上访问,其实安全度也是非常高,像现在默认已经限制了不同IP的访问失败,只能指定IP才能访问通。
![71a87d3b146e0ce23c1f49f770c32615.png](https://i-blog.csdnimg.cn/blog_migrate/f2f729f948d5cb9249108f7e8f689b1d.jpeg)
使用SSMS登录
在上图的【显示防火墙设置】字样上点击,跳转到防火墙的设置页面上。点击【添加客户端IP】,即可添加当前电脑的IP地址在可访问的清单中,记得最后【保存】才生效(一般来说,在SSMS上用登录按钮是可以直接SSMS上登录设置一步到位的,但可能因为SSMS只认国际版Azure帐号体系,用国内Azure帐号登录提示不存在)。
![be3ab6601f58386f2906476f5f6ff3ee.png](https://i-blog.csdnimg.cn/blog_migrate/ff4b5b354744e61d1deae1dadb9f2bb0.jpeg)
指定IP可访问设置
同样地一个服务器可以创建多个数据库,但Azure是按每个数据库收费,所以不划算,能用一个数据库就一个就够。
![1003711b26a673a52c7356fdcf4c959c.png](https://i-blog.csdnimg.cn/blog_migrate/6b5c762adece37e675b2227079273124.jpeg)
test2数据库是示例数据库,已经有数据
Azure SQL进阶之路
按上方的设置好之后,如果仅自己单人使用,没有问题,但产出也不大,服务器版数据库最大的好处是可以多人访问,并可以非常精细化地控制权限,某些用户可以查看某些指定的表甚至字段、只能只读,部分表可以读写等等,非常丰富的权限管理。
除此以外,我们接下来将启用Azure AAD帐号,这套帐号体系可以让用户在本机上单点登录许多的服务而共用一套帐号,在一般较大型的企业中,会使用域帐号来管理员工的电脑,域帐号对应的是AD帐号,在Azure上,无需IT的支持,即可使用上类似AD帐号体系一样的体验的AAD帐号,并且Azure是免费提供的,真的非常良心好用。
设想一个场景,我们将数据分发下去给用户,用户只需首次用AAD帐号体系登录一下,接下来日后的所有数据刷新工作都无需登录操作,这种体验是何等的棒,而这个文件分发到其他人手中,因其没有AAD帐号,他们就无法连接到Azure服务器上读取最新的数据,保证了数据分发安全。
创建AAD帐号体系
AAD帐号是贯通整个Azure体系的服务的,所以一次创建,后续其他服务也会用到,并且在Azure Analysis Service里,只能用AAD帐号体系登录。
点击【新建用户】
![3d4df29cb44afabcce00e30b6b8ff821.png](https://i-blog.csdnimg.cn/blog_migrate/9fb82e423aa6e9ce7072bb8e2cb8fc34.jpeg)
创建AAD帐号
需要注意的是用户名那里是填写邮箱类型的格式。
![f79f0c44940df63e2558761a09d39b4b.png](https://i-blog.csdnimg.cn/blog_migrate/555422fb935d50837623c81a7659ebd0.jpeg)
创建AAD用户
在AAD帐号体系里,还可以创建组的方式,将用户放到特定组里,最终在数据库里控制此组的权限分配,非常丰富的权限控制方式,非常好用。
同样地可以让用户自己登录,做密码的修改工作,整套帐号系统免费给我们用,零开发,非常给力。
![b6f69c7f30de432a201857c340be11b6.png](https://i-blog.csdnimg.cn/blog_migrate/af9a01587c98f3c4902bc4df7586ac01.jpeg)
更改密码
创建AAD的Azure SQL帐号体系
在Sqlserver中我们知道有Windows认证和Sqlserver认证两套帐号体系可以并存,在Azure SQL上,同样可以两套帐号。刚刚创建的Azure的SQL Server服务器时,用的是Sqlserver认证帐号,为了能够在Azure SQL上使用上AAD帐号,我们更合理的需求是在Azure SQL上使用AAD帐号。
回到我们上文的SQlserver服务器的截图中,红框位置有【Active Directory 管理员:未配置】字样,点击跳转到设置Active Directory 管理员界面。
点击【设置管理员】,将某个AAD帐号先设置成管理员SQL Server服务器帐号。
操作完成记得点击这【保存】按钮。
![56bc7c24277f02e14ff9c5ed6a1fa2bf.png](https://i-blog.csdnimg.cn/blog_migrate/7e409d96e60ebf37d7ee1b38be269750.jpeg)
设置管理员菜单
设置完成后的界面如下图:在SSMS上使用此帐号来登录Azure SQL
![23efebc76ceba8401efe2ff6ac1e048f.png](https://i-blog.csdnimg.cn/blog_migrate/fc205cfa511e47366ea3d293543e759a.jpeg)
image.png
![8a5a487b9ce0df73a0934b62e8a7dbad.png](https://i-blog.csdnimg.cn/blog_migrate/03f221fe0c20a2ed27957cf08ba5ec13.jpeg)
使用AAD帐号登录,需要选择不同的身份验证
切换到master数据库下创建AAD用户,再切换到其他需要此用户登录的数据库下运行此T-SQL语句创建AAD用户。
![31362983bd5c8c654f66d0b6a3bde38b.png](https://i-blog.csdnimg.cn/blog_migrate/834cbcf81a6e73bdf676d06655131bba.jpeg)
创建用户
创建完的用户,默认是没有权限访问数据库的,只有public角色权限,所以可以进一步分配角色供其使用,此处的角色最好是自定义角色,系统只带的这些角色,一般情况下权限太大,不合适。权限管理是一个非常丰富的详细颗粒度的调节,可满足非常丰富的数据管理需求。
![35f0c474c78a4316e0f924344a65db94.png](https://i-blog.csdnimg.cn/blog_migrate/5813d7e59c26243dbd1dfa5a8ff71647.jpeg)
image.png
最终我们看到已经成功添加了此AAD帐号到这个数据库内,可以由此用户登录来访问,当然在外部客户端上也可以登录如Excel上,实现了数据的权限分配。
![1b212f949427c68d6c42d44f22d74732.png](https://i-blog.csdnimg.cn/blog_migrate/f5959496ff14f9118205daf0337c965f.jpeg)
test数据库已经成功分配AAD帐号
在Excel上访问Azure数据库,需要比较高版本的Excel原生支持,低版本可能需要安装数据驱动。
![52ba58dea23ea47e2fac168128f38687.png](https://i-blog.csdnimg.cn/blog_migrate/e6abfb7c2a112c49da3571dcc09549b5.jpeg)
在Excel上访问Azure数据库
同样是填入数据库服务器地址和数据库
![8230210628d65feccdcb19a7ec21f729.png](https://i-blog.csdnimg.cn/blog_migrate/c7ecb1f09cef179a732db8cb9bfa4881.jpeg)
image.png
在帐号体系认证这里,选择的是Microsoft体系认证。
![8f6045328c50fc2bd87572d0c39a67b4.png](https://i-blog.csdnimg.cn/blog_migrate/b8c6401f94cdd8222fb8238b5de49529.jpeg)
Microsoft体系认证登录
登录成功后,顺利访问到数据库内容。
![50a7c8465da722cdd0b36aefb721ff28.png](https://i-blog.csdnimg.cn/blog_migrate/16c97a099ea5193c894e2c71ec073dbe.jpeg)
数据库表
数据已经完美地导出到Excel中,此文件保存后,下次打开,不再需要输入用户密码,只需刷新一下操作即可,就算重启后仍然有效。
![b488335b2b11efd624f523b3f52906fc.png](https://i-blog.csdnimg.cn/blog_migrate/b9f18b01380c21a63a7a54b0aa7b1bb5.jpeg)
数据已经导出到Excel
结语
经过以上的备战后,已经完美地实现在Azure上搭建Sqlserver数据库,享受一切Sqlerver的好处之余,还可以额外地享用到现成的Azure的AAD帐号体系,非常完美地完成了数据的分发的权限控制过程及多终端的用户访问能力,只需有外网访问能力,就算不在同一局域网都一样可行。
祝各位数据分析伙伴们,能够有能力说服公司,从部门级别的小应用、小需求开始,推行Azure的云上数据解决方案,后续再给大家介绍Azure Analysis Service服务,精彩程度更大,更加吸引人。
笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。