SQL Server 2008 Express предоставляет пользователю разрешение - PullRequest
8 голосов
/ 28 апреля 2010

Каковы соответствующие команды SQL (не через графический интерфейс) для добавления учетной записи пользователя Windows к разрешениям в базе данных SQL Server 2008? то есть .. Я хочу дать кому-то доступ для чтения, а другому человеку читать / писать ..

1 Ответ

17 голосов
/ 28 апреля 2010

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

  • сначала вам нужно создать логин для этого пользователя на основе его учетных данных Windows

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS
    

    Это устанавливает базовое разрешение даже для подключения к вашему SQL Server

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

    CREATE USER Johnnie FOR LOGIN Domain\Johnnie;
    
  • , чтобы предоставить разрешения на чтение для каждой таблицы в вашей базе данных, назначьте роль db_datareader этому пользователю

    sp_addrolemember @rolename = 'db_datareader', @membername = 'Johnnie'
    
  • , чтобы предоставить разрешения на чтение и запись для каждой таблицы в вашей базе данных, назначьте этому пользователю db_datareader, а также db_datawriter роль

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

...