Azure SQL Database实操体验及与Azure AD的集成
部门级需求之困
在一般的中小企业中,如果有IT人员,估计大家都有同样的无奈,向IT部提一些数据需求,反馈总是那么地缓慢。IT的响应永远是一些企业级的大型需求或紧急需求。部门级的需求常常非常尴尬,需要自力更生来解决。
数据分析师在这样的环境下开展工作,浑身的劲使不出来,想要一台服务器、一个数据库,可以做一些数据整合和数据共享分发,如果没有IT部的支持,在过去真的很难有什么出路。
现在云时代,很多IT的基础设施得以用云服务的方式提供,对我们部门级的需求应用,也是一种极大的福利(当然还是需要说服部门或IT的支持,让数据上云不用那么地紧张和恐惧,特别是有微软这样的重量级的合规国际型企业做担保,过不多久,人人上云和现在人人网购一样普遍)。
在Azure上开通数据库服务,对小型应用来说,费用低,但提供的服务却已经足够满足小需求使用,是一项很划算的投资。
今天就给大家介绍Azure SQL Database服务,手把手带领大家快速上手这一非常好用、易用的服务。
开通Azure SQL服务
登录Azure.cn中国后,通过【创建资源】的菜单,定位到【数据库】选项,即可找到【SQL Server (仅逻辑服务器)】,以下都统一简称其为Azure SQL。
按要求填写下必填项,其中用户名、密码是sqlserver认证的用户密码体系。资源组如果没有就新建一个。
等待一阵子,跳转到【所有资源】后,刷新一下,就可以看到已经新建了一项【sqlserver】服务,这个相当于我们的Sqlserver服务器,一台服务器上可以创建多个数据库。
当前创建好的服务器,没有数据库,先新建一个数据库。
在新建数据库选项中,可以建一个示例数据库【AdventureWorksLT】,也可以创建空白的数据库,自行测试下,示例数据库马上有个有数据的数据库可以供测试。
新建空白数据库时,记得要修改一下排序规则,我们中文数据库,一般用【Chinese_PRC_CI_AS】,这一项在创建完数据库后不能修改的。
回到sqlsever服务器上,可以看到服务器的登录地址。
使用SSMS输入服务器名称、用户、密码后,发现登录失败,提示防火墙拦截。
在云上访问,其实安全度也是非常高,像现在默认已经限制了不同IP的访问失败,只能指定IP才能访问通。
在上图的【显示防火墙设置】字样上点击,跳转到防火墙的设置页面上。点击【添加客户端IP】,即可添加当前电脑的IP地址在可访问的清单中,记得后【保存】才生效(一般来说,在SSMS上用登录按钮是可以直接SSMS上登录设置一步到位的,但可能因为SSMS只认国际版Azure帐号体系,用国内Azure帐号登录提示不存在)。
同样地一个服务器可以创建多个数据库,但Azure是按每个数据库收费,所以不划算,能用一个数据库就一个就够。
Azure SQL进阶之路
按上方的设置好之后,如果仅自己单人使用,没有问题,但产出也不大,服务器版数据库大的好处是可以多人访问,并可以非常精细化地控制权限,某些用户可以查看某些指定的表甚至字段、只能只读,部分表可以读写等等,非常丰富的权限管理。
除此以外,我们接下来将启用Azure AAD帐号,这套帐号体系可以让用户在本机上单点登录许多的服务而共用一套帐号,在一般较大型的企业中,会使用域帐号来管理员工的电脑,域帐号对应的是AD帐号,在Azure上,无需IT的支持,即可使用上类似AD帐号体系一样的体验的AAD帐号,并且Azure是免费提供的,真的非常良心好用。
设想一个场景,我们将数据分发下去给用户,用户只需用AAD帐号体系登录一下,接下来日后的所有数据刷新工作都无需登录操作,这种体验是何等的棒,而这个文件分发到其他人手中,因其没有AAD帐号,他们就无法连接到Azure服务器上读取新的数据,保证了数据分发安全。
创建AAD帐号体系
AAD帐号是贯通整个Azure体系的服务的,所以一次创建,后续其他服务也会用到,并且在Azure Analysis Service里,只能用AAD帐号体系登录。
点击【新建用户】
需要注意的是用户名那里是填写邮箱类型的格式。
在AAD帐号体系里,还可以创建组的方式,将用户放到特定组里,终在数据库里控制此组的权限分配,非常丰富的权限控制方式,非常好用。
同样地可以让用户自己登录,做密码的修改工作,整套帐号系统免费给我们用,零开发,非常给力。
创建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服务器帐号。
操作完成记得点击这【保存】按钮。
设置完成后的界面如下图:在SSMS上使用此帐号来登录Azure SQL
切换到master数据库下创建AAD用户,再切换到其他需要此用户登录的数据库下运行此T-SQL语句创建AAD用户。
云间拾遗注:此处的关键语句为 create user [user@ad-domain] from external provider,本质上是把已存在的外部AAD账户映射到数据库账号体系中。
创建完的用户,默认是没有权限访问数据库的,只有public角色权限,所以可以进一步分配角色供其使用,此处的角色好是自定义角色,系统只带的这些角色,一般情况下权限太大,不合适。权限管理是一个非常丰富的详细颗粒度的调节,可满足非常丰富的数据管理需求。
终我们看到已经成功添加了此AAD帐号到这个数据库内,可以由此用户登录来访问,当然在外部客户端上也可以登录如Excel上,实现了数据的权限分配。
在Excel上访问Azure数据库,需要比较高版本的Excel原生支持,低版本可能需要安装数据驱动。
同样是填入数据库服务器地址和数据库
在帐号体系认证这里,选择的是Microsoft体系认证。
登录成功后,顺利访问到数据库内容。
数据已经完美地导出到Excel中,此文件保存后,下次打开,不再需要输入用户密码,只需刷新一下操作即可,就算重启后仍然有效。
结语
经过以上的备战后,已经完美地实现在Azure上搭建Sqlserver数据库,享受一切Sqlerver的好处之余,还可以额外地享用到现成的Azure的AAD帐号体系,非常完美地完成了数据的分发的权限控制过程及多终端的用户访问能力,只需有外网访问能力,就算不在同一局域网都一样可行。
祝各位数据分析伙伴们,能够有能力说服公司,从部门级别的小应用、小需求开始,推行Azure的云上数据解决方案,后续再给大家介绍Azure Analysis Service服务,精彩程度更大,更加吸引人。
相关文章