Как предоставить пользователю доступ для чтения к базе данных в SQL Server? - PullRequest
30 голосов
/ 14 июля 2011

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

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

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

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

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 Ответ

69 голосов
/ 14 июля 2011

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

  1. вам необходимо создать логин для SQL Server для этого пользователя на основе его учетной записи Windows

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

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

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

USE (your database)
EXEC sp_addrolemember 'db_datareader', '(your user name)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...