Как предоставить доступ для чтения для пользователя к базе данных на 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)'