Есть ли способ создать второй логин (с пользователем) в базе данных Azure PaaS? - PullRequest
0 голосов
/ 23 октября 2019

Мы переместили нашу базу данных с физического сервера в базу данных SQL Azure PaaS. Логин сервера используется приложением для подключения к базе данных. Мне нужно создать другую учетную запись входа с доступом только для чтения к базе данных. Может кто-нибудь, пожалуйста, помогите.

Вещи, которые я уже пробовал.

CREATE LOGIN login123
WITH PASSWORD = ******* 

CREATE USER login123 
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo

ALTER ROLE db_datareader ADD MEMBER login123

Выше было выполнено успешно, но когда приложение использует этот логин, оно получает ошибку ниже. "Сервер цену" login123 "не может получить доступ к базе данных" master "в текущем контексте безопасности. Невозможно открыть базу данных пользователя по умолчанию. Ошибка входа."

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Когда вы выполняете этот запрос:

CREATE LOGIN login123
WITH PASSWORD = ******* 

CREATE USER login123 
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo

ALTER ROLE db_datareader ADD MEMBER login123

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

В какой базе данных выполняется запрос, разрешение только для чтениядля какой базы данных.

У пользователя нет прав доступа к другой базе данных или главной базе данных.

Для получения более подробной информации см .:

  1. Управление и предоставлениедоступ базы данных к базе данных SQL и хранилищу данных SQL
  2. Роли уровня базы данных

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

Вот код T-SQL, который я тестировал, и он работает в базе данных SQL Azure:

USE master
CREATE LOGIN login123
WITH PASSWORD = '****' 
GO
CREATE USER login123 
FOR LOGIN login123
WITH DEFAULT_SCHEMA = db_datareader
GO


USE Mydatabase  
CREATE USER login123 
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo
GO
ALTER ROLE db_datareader ADD MEMBER login123
GO

``````

Надеюсь, это поможет.

1 голос
/ 23 октября 2019

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

вы можете найти большеинформация по этой ссылке: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-manage-logins#non-administrator-users

...