Предоставление доступа к базе данных SQL Server для доступа к базе данных - SQL Server - PullRequest
1 голос
/ 18 мая 2010

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

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

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Вы, вероятно, хотите CREATE USER

например.

CREATE USER bobuser FOR LOGIN boblogin

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

0 голосов
/ 18 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...