《Windows Azure Platform 系列文章目录》
本文将介绍如何在Azure SQL Database创建只读用户。
请先按照笔者之前的文章:Azure SQL Database (24) 使用新管理界面,创建跨数据中心标准地域复制(Standard Geo-Replication)
预先准备以下内容:
1.在Azure China East数据中心,作为主站点。创建1个Database为MyDB。
2.在Azure China North数据中心,创建只读数据库。MyDB为只读数据库。
注意:我们在下图中创建的服务器管理员账户leizhang,是属于sysadmin。
3.当我们配置完服务器防火墙。访问主站点: leizhangsqlsvrsh.database.chinacloudapi.cn,输入相关的登录信息。
我们就可以访问上面创建的数据库了。
我们预先创建在MyDB数据库里,创建一个数据表:
CREATE TABLE dbo.new_employees(
[ID] [int]>
[firstname] [nvarchar](50) NOT NULL,
[lastname] [nvarchar](50) NOT NULL,
[gender] [datetime] NOT NULL)
但是请注意上图中:服务器管理员账户leizhang,毕竟是属于sysadmin组的。
如果我们使用ETL抽取Azure SQL Database数据的时候,提供leizhang这个sysadmin组的用户是非常不安全的。
最安全的方式,是提供只读用户。
我们这里需要做两种只读用户:
1.在China East主站点,创建只读用户
2.在China North只读站点,创建只读用户
3.站点信息如下:
类型
SQL Server Name
物理位置
DB Name
定价层
权限
主站点
leizhangsqlsvrsh.database.chinacloudapi.cn
China East
MyDB
Basic
读写
异地复制站点
leizhangsqlsvrbj.database.chinacloudapi.cn
China North
MyDB
Basic
只读 第一部分,我们在China East主站点:leizhangsqlsvrsh.database.chinacloudapi.cn,创建只读用户。
1.按照下面的信息登录:
Server Name: leizhangsqlsvrsh.database.chinacloudapi.cn
UserName: leizhang
password:略
注意,使用SQL Server Management Studio(SSMS),选择Options。
在Connection Properties,我们选择default。
2.在Master库下,右键New Query。如下图:
在Master库下,我们点击执行下面的T-SQL语句:
创建新的Login readonlylogin并设置密码。
CREATE LOGIN readonlylogin WITH password='1231!#ASDF!a';
执行成功后,就可以在Logins里面,查看到新的readonlylogin。如下图:
3.如果我们需要在只读站点China North,创建只读用户,请在Master库下执行以下的语句:
否则请忽略步骤3.
SELECT [name], [sid] FROM [sys].[sql_logins] WHERE [type_desc] = 'SQL_Login'
SELECT [name], [sid] FROM [sys].[database_principals] WHERE [type_desc] = 'SQL_USER'
执行结果,如下:
我们可以看到,readonlylogin账户的sid如上图的截图。这个sid我们在只读站点leizhangsqlsvrbj,创建只读账户会用到。
4.在MyDB库下,右键New Query。如下图:
在MyDB库下,我们点击执行下面的T-SQL语句:
CREATE USER readonlyuser FROM LOGIN readonlylogin;
EXEC sp_addrolemember 'db_datareader', 'readonlyuser';
执行成功后,我们可以看到,在主站点:leizhangsqlsvrsh的数据库MyDB下,有新的用户reareadonlyuser。如下图:
5.然后新开启一个SSMS,以readonlylogin只读账户登录:
(1)Server Name:leizhangsqlsvrsh.database.chinacloudapi.cn
(2)User Name:readonlylogin
(3)Password: 1231!#ASDF!a
注意Connection Properties,我们要选择MyDB。如下图:
6.以readonlylogin只读账户登录后,我们执行插入操作,会发现插入失败。如下图:
第二部分,我们在China North只读站点:leizhangsqlsvrbj.database.chinacloudapi.cn,创建只读用户。
1.我们以sysadmin账户,登录China North只读站点:
(1)Server Name:leizhangsqlsvrbj.database.chinacloudapi.cn
(2)User Name: leizhang
(3)Password: 略
注意:在Connection Properties,我们选择default。
2.登录后,我们发现在只读站点: leizhangsqlsvrsh.database.chinacloudapi.cn的数据库MyDB下,已经把主站点的只读用户同步过来。如下图:
但是上图的蓝色区域里,logins只能leizhang这个sysadmin组的用户。并没有readonlylogin信息
3.我们在只读站点的Master库里,执行下面的T-SQL语句
--注意SID=后面没有单引号或者双引号
--
请把第一部分的,步骤3中的sid值复制过来
CREATE LOGIN readonlylogin WITH password='1231!#ASDF!a', SID=0x01060000000000640000000000000000EB29A4EE8E1A75459AAC0219BC67BB33
4.执行成功后,我们重新打开SQL Server Management Studio (SSMS)。登录只读站点eizhangsqlsvrbj,信息如下:
(1)Server Name:leizhangsqlsvrbj.database.chinacloudapi.cn
(2)User Name: readonlylogin
(3)Password: 1231!#ASDF!a
注意:在Connection Properties的Database选择MyDB
这样就可以以只读账户readonlylogin,登录只读站点leizhangsqlsvrbj
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com