【问题标题】:Configuring Azure db as read-only将 Azure db 配置为只读
【发布时间】:2018-09-10 14:18:23
【问题描述】:

有没有办法将 Azure sql 数据库临时配置为只读。在尝试创建只读用户时,我运行了以下命令

CREATE LOGIN reader WITH password='****' -- successful
CREATE USER readerUser FROM LOGIN reader; -- successful
EXEC sp_addrolemember 'db_datareader', 'readerUser';  -- failed 

最后一条语句因错误而失败

无法更改角色“db_datareader”,因为它不存在或 你没有权限。

【问题讨论】:

  • 在我看来,您应该发布您的更新作为答案。

标签: azure azure-sql-database


【解决方案1】:

如果您真的想使用上面提到的命令添加只读用户(以便您可以根据指定的连接用户以只读模式或读写模式连接),这里是当您执行上述命令时,解释可能出了什么问题。

CREATE LOGIN reader WITH password='****' -- successful
CREATE USER readerUser FROM LOGIN reader; -- successful
EXEC sp_addrolemember 'db_datareader', 'readerUser';  -- failed

无法更改角色“db_datareader”,因为它不存在或 你没有权限。

当我直接在 master 数据库上执行您提到的所有 3 个命令时,我能够重现 相同的错误

理想情况下,要创建只读用户,您必须使用 master 数据库创建登录,以便它是服务器级别的登录,然后将在您打算使用的数据数据库上创建用户和添加角色成员。

-- Run this command on Master Database
CREATE LOGIN reader WITH password='****'  

-- Run these commands on data Database
CREATE USER readerUser FROM LOGIN reader;  
EXEC sp_addrolemember 'db_datareader', 'readerUser'; 

-- Optionally, run an extra command to create the same user on Master database. This command is not required if you connect only from code/api's, but if you want to connect to your database using SQL Management Studio, then you need this one.
CREATE USER readerUser FROM LOGIN reader; -- run this on Master Database again

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-27
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2021-02-13
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多