Настройка базы данных Azure только для чтения - PullRequest
0 голосов
/ 07 сентября 2018

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

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

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

Невозможно изменить роль 'db_datareader', поскольку она не существует или у вас нет разрешения.

1 Ответ

0 голосов
/ 07 сентября 2018

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

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

Невозможно изменить роль 'db_datareader', поскольку она не существует или у вас нет разрешения.

Мне удалось воспроизвести ту же ошибку , что и вы, когда я выполнил все 3 команды, которые вы упомянули, непосредственно в базе данных master.

В идеале, для создания пользователя, доступного только для чтения, необходимо создать имя входа с использованием базы данных 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...