Управление безопасностью базы данных посредством инструкций языка Transact-SQL
Для добавления пользователя в текущую базу данных используется инструкция CREATE USER. Синтаксис этой инструкции выглядит таким образом:
CREATE USER user_name
[FOR {LOGIN login |CERTIFICATE cert_name | ASYMMETRIC KEY key_name}]
[WITH DEFAULT_SCHEMA = schema_name]
Параметр user_name определяет имя, по которому пользователь идентифицируется в базе данных, а в параметре login указывается
регистрационное имя, для которого создается данный пользователь. В параметрах cert_name и key_name указываются соответствующий сертификат и асимметричный ключ соответственно. Наконец, в параметре WITH DEFAULT_SCHEMAуказывается первая схема, с которой сервер базы данных будет начинать поиск для разрешения имен объектов для данного пользователя базы данных.
С помощью инструкции ALTERUSER можно изменить имя пользователя базы данных, изменить схему пользователя по умолчанию или переопределить пользователя с другим регистрационным именем. Подобно инструкции CREATE USER, пользователю можно присвоить схему по умолчанию прежде, чем она создана.
Для удаления пользователя из текущей базы данных применяется инструкция DROPUSER. Пользователя, который является владельцем защищаемых объектов (объектов базы данных), удалить нельзя. [4]
Роли
Когда нескольким пользователям требуется выполнять подобные действия в определенной базе данных и при этом они не являются членами соответствующей группы Windows, то можно воспользоваться ролью базы данных, задающей группу пользователей базы данных, которые могут иметь доступ к одним и тем же объектам базы данных.
Членами роли базы данных могут быть любые из следующих:
Архитектура безопасности компонента Database Engine включает несколько "системных" ролей, которые имеют специальные явные разрешения. Кроме ролей, определяемых пользователями, существует два типа предопределенных ролей: фиксированные серверные роли и фиксированные роли базы данных. [4]