Настройка базы данных Azure как доступной только для чтения

Есть ли способ временно настроить базу данных Azure sql как доступную только для чтения. В моей попытке создать пользователя, доступного только для чтения, я выполнил следующие

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

и последний оператор завершился ошибкой

Cannot alter the role 'db_datareader', because it does not exist or you do not have permission.

На мой взгляд, в качестве ответа вам следует опубликовать свое Обновление.

Alberto Morillo 07.09.2018 03:24
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
1
307
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы действительно хотели добавить пользователя только для чтения с командами, которые вы упомянули выше (чтобы вы могли подключаться в режиме только для чтения или в режиме чтения-записи, в зависимости от того, какой пользователь указан для подключения), вот объяснение того, что возможно, что-то пошло не так, когда вы выполнили вышеупомянутые команды.

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

Cannot alter the role 'db_datareader', because it does not exist or you do not have permission.

Мне удалось воспроизвести та же ошибка, как у вас, когда я выполнил все 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

Другие вопросы по теме