Как предоставить доступ для чтения для пользователя к базе данных на SQL Server?

Я хочу предоставить доступ пользователю к конкретной базе данных с доступом для чтения и записи. Пользователь уже доступен в домене, но не в БД.

Итак, как я могу дать им доступ с созданием нового пользователя и пароля?

Кто-то сказал мне, что это можно сделать только с указанием пользователя, домена и БД, которые вы хотите предоставить пользователю, без необходимости создания нового пользователя и пароля.

Это старый способ реализации. Он работает, но он создает новый логин и пользователя, а не использует тот, который доступен в домене:

use DBName;
create login a_2 with password='Aa123';
create user a_2 for login a_2;
grant insert to a_2;
grant select to a_2;

Ответы

Ответ 1

Это двухэтапный процесс:

  • вам нужно создать login для SQL Server для этого пользователя на основе учетной записи Windows

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
    
  • вам необходимо предоставить это разрешение для входа в базу данных:

    USE (your database)
    CREATE USER (username) FOR LOGIN (your login name)
    

Как только у вас есть этот пользователь в вашей базе данных, вы можете предоставить ему любые права, которые вы хотите, например. вы можете назначить ему роль базы данных db_datareader для чтения всех таблиц.

USE (your database)
EXEC sp_addrolemember 'db_datareader', '(your user name)'