Поделиться через


sp_grantdbaccess (Transact-SQL)

Добавляет нового пользователя в текущую базу данных.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Используйте вместо этого инструкцию CREATE USER.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_grantdbaccess [ @loginame = ] 'login'
    [ , [ @name_in_db = ] 'name_in_db' [ OUTPUT ] ]

Аргументы

  • [ @loginame = ] **'**login '
    Имя группы Windows, имени входа Windows или SQL Server, которое будет сопоставлено с новым пользователем базы данных. Имена групп Windows и имен входа Windows должны быть дополнены именем домена Windows в виде Домен\имя_входа, например LONDON\Joeb. В качестве этого имени входа не может использоваться имя, уже сопоставленное пользователю в базе данных. Аргумент login имеет тип sysname и не имеет значения по умолчанию.

  • [ @name_in_db=] 'name_in_db' [ OUTPUT]
    Имя нового пользователя базы данных. Аргумент name_in_db — переменная OUTPUT, имеющая тип данных sysname и значение по умолчанию NULL. Если оно не указано, то используется аргумент login. Если оно указано как переменная OUTPUT со значением NULL, аргументу @name_in_db присваивается значение аргумента login. При этом аргумент name_in_db еще не должен существовать в текущей базе данных.

Значения кодов возврата

0 (успешное завершение) или 1 (ошибка).

Замечания

Хранимая процедура sp_grantdbaccess вызывает инструкцию CREATE USER, которая поддерживает дополнительные параметры. Дополнительные сведения о создании пользователей баз данных см. в разделе CREATE USER (Transact-SQL). Чтобы удалить пользователя из базы данных, используется инструкция DROP USER.

Хранимую процедуру sp_grantdbaccess нельзя выполнять в пользовательской транзакции.

Разрешения

Необходимо быть членом предопределенной роли базы данных db_owner или db_owner.

Пример

В следующем примере, чтобы добавить к текущей базе данных пользователя базы данных для имени входа Windows Edmonds\LolanSo, используется инструкция CREATE USER. Новому пользователю присваивается имя Lolan. Этот метод является предпочтительным при создании пользователя базы данных.

CREATE USER Lolan FOR LOGIN [Edmonds\LolanSo];
GO