Предоставление доступа входа в систему SQL Server к базе данных - SQL Server

Я хочу предоставить доступ к базе данных для входа в систему SQL Server. Я знаю о sp_grantdbaccess, однако он удерживается от использования. Что я могу использовать вместо этого и как я могу проверить, не имеет ли вход в систему уже доступа к базе данных?

Сценарий: Усера создает базу данных - в sys.database_principals, у меня есть запись с именем dbo и с sid Усера. Я пытаюсь дать разрешения Усера снова: Я пытаюсь сделать выбор на sys.database_principals по имени ='UserA', однако, так как имя является dbo не Усера, я добираюсь, ошибка - 'Вход в систему уже имеет учетную запись под другим именем пользователя'.. Как я могу определить, есть ли у пользователя доступ к базе данных без sid?

1
задан kjv 18 May 2010 в 15:06
поделиться

2 ответа

Вы, вероятно, захотите СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ

, например.

CREATE USER bobuser FOR LOGIN boblogin

В каталоге безопасности sys.database_principals есть список пользователей базы данных, поэтому вы можете быть уверены, что у вас еще нет ни одного с таким именем.

2
ответ дан 3 September 2019 в 00:28
поделиться

Во-первых, вам нужно создать пользователя в этой базе данных для данного логина. Для этого используйте Создать пользователя . Если вы хотите определить, существует ли уже пользователь, вы можете использовать представление каталога sys.database_principals , отфильтровав type = 'U' . Если вы хотите определить, является ли данный пользователь уже в роли, вы можете использовать sys.database_role_members .

0
ответ дан 3 September 2019 в 00:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: