Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб админ инф сист2.doc
Скачиваний:
12
Добавлен:
26.03.2015
Размер:
2.05 Mб
Скачать

Специальные пользователи

В любой базе данных автоматически создаются два пользователя:

dbo (database owner). Это специальный пользователь базы данных, являющийся ее владельцем. Владелец базы данных имеет абсолютные права по управлению ею. Пользователя dbo нельзя удалить. По умолчанию в пользователя dbo отображается учетная запись sa, которой тем самым предоставляются максимальные права в базе данных. Кроме того, все члены роли базы дачных dbowner также считаются владельцами базы данных. Пользователь dbo включен в роль db_owner и не может быть удален из нее

guest. Если учетной записи явно не предоставлен доступ к базе данных, то она автоматически отображается сервером в пользователя guest. С помощью этого пользователя можно предоставлять разрешения на доступ к объектам базы данных, необходимые любому пользователю. Разрешив доступ пользователю guest, вы, тем самым, даете аналогичные права доступа всем учетным записям, сконфигурированным на SQL Server 2000. Для повышения безопасности хранящейся информации рекомендуется удалять пользователя guest, избазы данных.

Хранение информации о пользователях

Информация о пользователях, созданных в базе данных, хранится в системной таблице sysusers, которая содержит множество столбцов, определяющих различные свойства пользователя. В табл. 9.2. приведен список столбцов таблицы с указанием типа данных и назначения.

Таблица 3.1. Список столбцов таблицы sysuser

Имя столбца

Тип данных

Краткое описание

uid

smallint

Указывается идентификатор пользователя (роли), уникальный в пределах базы данных. Пользователю dbo при создании БД присваивается идентификатор 1, а пользователю guest - идентификатор 2. Идентификаторы фиксированных ролей начинаются с номера 16З84, а пользовательских - с 16 400

status

smallint

Битовое поле, определяющее статус пользователя (роли). Не документировано. Предназначено для внутреннего применения

name

sysname

Имя, присвоенное пользователю (роли) при создании. Можно легко изменять имена пользователей, исправляя значение в этом столбце

sid

varbinary (85)

Идентификатор безопасности учетной записи, связанной с рассматриваемым пользователем. Для учетных записей SQL Server идентификатор обязательно должен иметься в столбце sid системной таблицы syslogins системной БД Master. Для учетных записей Windows NT идентификатор соответствует доменному идентификатору безопасности и не обязательно присутствует в таблице syslogins (для пользователей, получающих доступ к серверу через членство в группе Windows NT)

roles

varbinary (2049)

Двоичное поле, определяющее членство пользователя в ролях сервера. Если пользователь является членом той или иной роли, то соответствующий бит устанавливается в 1. Таким образом, максимальное количество ролей SQL Server 2000 ограничено количеством 16384

createdate

datetime

Дата создания пользователя (роли)

updatedate

datetime

Дата последнего изменения свойств пользователя (роли)

altuid

smallint

Альтернативный идентификатор пользователя. Не документировано. Предназначено для внутреннего использования

password

varbinary (256)

В этом столбце хранится пароль для ролей приложения. Для пользователей, фиксированных и пользовательских ролей базы данных в этом столбце содержится значение null

gid

smallint

Идентификатор группы, членом которой является пользователь. Если значение в этом столбце равно значению в столбце sid, то текущая строка описывает пользовательскую роль БД

environ

varchar (255)

В настоящее время данный столбец не используется и содержит значение NULL

hasdbaccess

int

Если содержит 1, то пользователь имеет доступ к базе данных

islogin

int

Если содержит 1. то текущая строка соответствует учетной записи (SQL Serves, пользователя или группы Windows NT)

isntname

int

Если содержит 1. то пользователь является отображением учетной записи пользователя или группы Windows NT

isntgroup

int

Если содержит 1, то пользователь является отображением учетной записи группы Windows NT

isntuser

int

Если содержит 1, то пользователь является отображением учетной записи пользователя Windows NT

issqluser

int

Если содержит 1, то пользователь является отображением учетной записи пользователя SOL Server

isaliased

int

Если содержит 1, то пользователь является псевдонимом другого пользователя. Актуально для учетных записей SQL Server 6.x

issqlrole

int

Если содержит 1, то текущая строка соответствует пользовательской или фиксированной роли базы данных

isapprole

int

Если содержит 1. то текущая строка соответствует роли приложения

Как видно, структура таблицы sysusers довольно сложна. Тем не менее, выполнение некоторых задач требует прямого доступа к этой таблице и невозможно иными способами. Например, если вы присоединяете (attach) базу данных с другого сервера, то соответствия между учетными записями и пользователями базы данных будут наверняка нарушены. То есть, хотя в базе данных и будут существовать пользователи, они не могут быть связаны с реальными учетными записями. Это произойдет даже в том случае, когда на сервере имеются учетные записи с теми же именами, что и на исходном сервере.