zoukankan      html  css  js  c++  java
  • Azure SQL Database (25) Azure SQL Database创建只读用户

      《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] IDENTITY(1,1) NOT NULL,
        [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

      

  • 相关阅读:
    leetcode35. search Insert Position
    leetcode26.Remove Duplicates from Sorted Array
    leetcode46.Permutation & leetcode47.Permutation II
    leetcode.5 Longest Palindromic Substring
    [转载] C++中new和malloc的区别
    [转载] C++中的自由存储区和堆
    xCode8以及iOS10 的新特性
    cell上添加倒计时,以及时差问题的解决
    cell的复用机制
    iOS 懒加载模式
  • 原文地址:https://www.cnblogs.com/threestone/p/7573626.html
Copyright © 2011-2022 走看看